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' const CompanyProfile = () => { const [changeConfirmation, setChangeConfirmation] = useState(false) const auth = useAuth() const [isOpen, setIsOpen] = useState(false) const toggle = () => setIsOpen(!isOpen) const { register, setValue, control, handleSubmit } = useForm({ defaultValues: { industry: '', companyType: '', name: '', taxName: '', npwp: '', alamat_wajib_pajak:'', } }) 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) } 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 } 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 ( <> setChangeConfirmation(true)} title='Ubah profil Bisnis' >
Apakah anda yakin mengubah data bisnis?
{isOpen && (
{ e.preventDefault() setChangeConfirmation(true) }}>
} />
Badan Usaha
} />
)} ) } export default CompanyProfile