import odooApi from '@/core/api/odooApi';
import HookFormSelect from '@/core/components/elements/Select/HookFormSelect';
import useAuth from '@/core/hooks/useAuth';
import addressApi from '@/lib/address/api/addressApi';
import { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/24/outline';
import { useEffect, useState } from 'react';
import { Controller, useForm } from 'react-hook-form';
import { toast } from 'react-hot-toast';
import BottomPopup from '@/core/components/elements/Popup/BottomPopup';
import { yupResolver } from '@hookform/resolvers/yup';
import * as Yup from 'yup';
const CompanyProfile = () => {
const [changeConfirmation, setChangeConfirmation] = useState(false);
const auth = useAuth();
const [isOpen, setIsOpen] = useState(false);
const toggle = () => setIsOpen(!isOpen);
const {
register,
formState: { errors },
setValue,
control,
handleSubmit,
} = useForm({
resolver: yupResolver(validationSchema),
defaultValues,
});
const [industries, setIndustries] = useState([]);
useEffect(() => {
const loadIndustries = async () => {
const dataIndustries = await odooApi('GET', '/api/v1/partner/industry');
setIndustries(
dataIndustries?.map((o) => ({ value: o.id, label: o.name }))
);
};
loadIndustries();
}, []);
const [companyTypes, setCompanyTypes] = useState([]);
useEffect(() => {
const loadCompanyTypes = async () => {
const dataCompanyTypes = await odooApi(
'GET',
'/api/v1/partner/company_type'
);
setCompanyTypes(
dataCompanyTypes?.map((o) => ({ value: o.id, label: o.name }))
);
};
loadCompanyTypes();
}, []);
useEffect(() => {
const loadProfile = async () => {
const dataProfile = await addressApi({ id: auth.parentId });
setValue('name', dataProfile.name);
setValue('industry', dataProfile.industryId);
setValue('companyType', dataProfile.companyTypeId);
setValue('taxName', dataProfile.taxName);
setValue('npwp', dataProfile.npwp);
setValue('alamat_wajib_pajak', dataProfile.alamatWajibPajak);
setValue('alamat_bisnis', dataProfile.alamatBisnis);
};
if (auth) loadProfile();
}, [auth, setValue]);
const onSubmitHandler = async (values) => {
if (changeConfirmation) {
const data = {
...values,
id_user: auth.partnerId,
company_type_id: values.companyType,
industry_id: values.industry,
tax_name: values.taxName,
alamat_lengkap_text: values.alamat_wajib_pajak,
street: values.alamat_bisnis,
};
const isUpdated = await odooApi(
'PUT',
`/api/v1/partner/${auth.parentId}`,
data
);
if (isUpdated?.id) {
toast.success('Berhasil mengubah profil', { duration: 1500 });
return;
}
toast.error('Terjadi kesalahan internal');
}
};
const handleConfirmSubmit = () => {
setChangeConfirmation(false);
handleSubmit(onSubmitHandler)();
};
return (
<>