summaryrefslogtreecommitdiff
path: root/src/lib/auth/components/CompanyProfile.jsx
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-23 10:52:40 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-23 10:52:40 +0700
commit0de0fda98dc35bd6503f1a45a52878b154a94c75 (patch)
tree3e6a693b20f58c4f234a7d5e124f2b21751ca37a /src/lib/auth/components/CompanyProfile.jsx
parenta553af3576985e6d14cf59177a6cca9fa108c0bb (diff)
fox
Diffstat (limited to 'src/lib/auth/components/CompanyProfile.jsx')
-rw-r--r--src/lib/auth/components/CompanyProfile.jsx120
1 files changed, 86 insertions, 34 deletions
diff --git a/src/lib/auth/components/CompanyProfile.jsx b/src/lib/auth/components/CompanyProfile.jsx
index d66a0209..95575c87 100644
--- a/src/lib/auth/components/CompanyProfile.jsx
+++ b/src/lib/auth/components/CompanyProfile.jsx
@@ -1,32 +1,66 @@
+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 { useForm } from 'react-hook-form'
+import { Controller, useForm } from 'react-hook-form'
-const PersonalProfile = () => {
+const CompanyProfile = () => {
const auth = useAuth()
const [isOpen, setIsOpen] = useState(false)
const toggle = () => setIsOpen(!isOpen)
- const { register, setValue } = useForm({
+ const { register, setValue, control, handleSubmit } = useForm({
defaultValues: {
- email: '',
+ industry: '',
+ companyType: '',
name: '',
- mobile: '',
- password: ''
+ taxName: '',
+ npwp: ''
}
})
+ 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.partnerId })
- setValue('email', dataProfile?.email)
- setValue('name', dataProfile?.name)
- setValue('mobile', dataProfile?.mobile)
+ 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)
}
if (auth) loadProfile()
}, [auth, setValue])
+ const onSubmitHandler = async (values) => {
+ const data = {
+ ...values,
+ company_type_id: values.companyType,
+ industry_id: values.industry,
+ tax_name: values.taxName
+ };
+ const isUpdated = await odooApi('PUT', `/api/v1/partner/${auth.parentId}`, data)
+ console.log(isUpdated);
+ }
+
return (
<>
<button
@@ -35,9 +69,9 @@ const PersonalProfile = () => {
className='p-4 flex items-center text-left'
>
<div>
- <div className='font-semibold mb-2'>Informasi Akun</div>
+ <div className='font-semibold mb-2'>Informasi Usaha</div>
<div className='text-gray_r-11'>
- Dibawah ini adalah data diri yang anda masukkan, periksa kembali data diri anda
+ Dibawah ini adalah data usaha yang anda masukkan, periksa kembali data usaha anda.
</div>
</div>
<div className='p-2 bg-gray_r-3 rounded'>
@@ -47,44 +81,62 @@ const PersonalProfile = () => {
</button>
{isOpen && (
- <form className='p-4 border-t border-gray_r-6 flex flex-col gap-y-4'>
+ <form className='p-4 border-t border-gray_r-6 flex flex-col gap-y-4' onSubmit={handleSubmit(onSubmitHandler)}>
<div>
- <label>Email</label>
- <input
- {...register('email')}
- type='text'
- disabled
- className='form-input mt-3'
+ <label className='block mb-3'>Klasifikasi Jenis Usaha</label>
+ <Controller
+ name='industry'
+ control={control}
+ render={(props) => (
+ <HookFormSelect
+ {...props}
+ options={industries}
+ />
+ )}
/>
</div>
- <div>
- <label>Nama Lengkap</label>
- <input
- {...register('name')}
- type='text'
- className='form-input mt-3'
- />
+ <div className='flex flex-wrap'>
+ <div className='w-full mb-3'>Nama Usaha</div>
+ <div className='w-3/12 pr-1'>
+ <Controller
+ name='companyType'
+ control={control}
+ render={(props) => (
+ <HookFormSelect
+ {...props}
+ options={companyTypes}
+ />
+ )}
+ />
+ </div>
+ <div className='w-9/12 pl-1'>
+ <input
+ {...register('name')}
+ type='text'
+ className='form-input'
+ placeholder='Cth: Indoteknik Dotcom Gemilang'
+ />
+ </div>
</div>
<div>
- <label>No. Handphone</label>
+ <label>Nama Wajib Pajak</label>
<input
- {...register('mobile')}
+ {...register('taxName')}
type='text'
className='form-input mt-3'
/>
</div>
<div>
- <label>Kata Sandi</label>
+ <label>Nomor NPWP</label>
<input
- {...register('password')}
- type='password'
+ {...register('npwp')}
+ type='text'
className='form-input mt-3'
- placeholder='Isi jika ingin mengubah kata sandi'
/>
</div>
<button
type='submit'
- className='btn-yellow w-full'
+ className='btn-yellow w-full mt-2'
>
Simpan
</button>
@@ -94,4 +146,4 @@ const PersonalProfile = () => {
)
}
-export default PersonalProfile
+export default CompanyProfile