diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2025-01-22 10:10:19 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2025-01-22 10:10:19 +0700 |
| commit | 5cc3c938da3dfde636b918b8f2fdef33f3c61419 (patch) | |
| tree | 222177fe6dce70fc608698c700de17032105998a /src/lib/address | |
| parent | 238c675eecaf6f4f953d87c4b0a128bfa139cff4 (diff) | |
| parent | 6d9c1067b6e857eb95f12864cc88117350ae6cfb (diff) | |
Merge branch 'new-release' into CR/form-merchant
# Conflicts:
# src/lib/form/components/Merchant.jsx
Diffstat (limited to 'src/lib/address')
| -rw-r--r-- | src/lib/address/api/stateApi.js | 12 | ||||
| -rw-r--r-- | src/lib/address/components/CreateAddress.jsx | 10 | ||||
| -rw-r--r-- | src/lib/address/components/EditAddress.jsx | 28 |
3 files changed, 30 insertions, 20 deletions
diff --git a/src/lib/address/api/stateApi.js b/src/lib/address/api/stateApi.js index cea49e7e..6bfd36d2 100644 --- a/src/lib/address/api/stateApi.js +++ b/src/lib/address/api/stateApi.js @@ -1,8 +1,8 @@ -import odooApi from '@/core/api/odooApi' +import odooApi from '@/core/api/odooApi'; -const stateApi = async () => { - const dataState = await odooApi('GET', '/api/v1/state') - return dataState -} +const stateApi = async ({ tempo = false }) => { + const dataState = await odooApi('GET', `/api/v1/state?tempo=${tempo}`); + return dataState; +}; -export default stateApi
\ No newline at end of file +export default stateApi; diff --git a/src/lib/address/components/CreateAddress.jsx b/src/lib/address/components/CreateAddress.jsx index 9d70e8fc..97db7ed8 100644 --- a/src/lib/address/components/CreateAddress.jsx +++ b/src/lib/address/components/CreateAddress.jsx @@ -37,7 +37,7 @@ const CreateAddress = () => { useEffect(() => { const loadState = async () => { - let dataState = await stateApi(); + let dataState = await stateApi({ tempo: false }); dataState = dataState.map((state) => ({ value: state.id, label: state.name, @@ -52,7 +52,7 @@ const CreateAddress = () => { setValue('city', ''); if (watchState) { const loadCities = async () => { - let dataCities = await cityApi({stateId: watchState}); + let dataCities = await cityApi({ stateId: watchState }); dataCities = dataCities.map((city) => ({ value: city.id, label: city.name, @@ -243,7 +243,11 @@ const CreateAddress = () => { name='city' control={control} render={(props) => ( - <HookFormSelect {...props} options={cities} disabled={!watchState}/> + <HookFormSelect + {...props} + options={cities} + disabled={!watchState} + /> )} /> <div className='text-caption-2 text-danger-500 mt-1'> diff --git a/src/lib/address/components/EditAddress.jsx b/src/lib/address/components/EditAddress.jsx index 23cf72a9..62858465 100644 --- a/src/lib/address/components/EditAddress.jsx +++ b/src/lib/address/components/EditAddress.jsx @@ -34,7 +34,7 @@ const EditAddress = ({ id, defaultValues }) => { const [states, setStates] = useState([]); const [cities, setCities] = useState([]); const [districts, setDistricts] = useState([]); - const [subDistricts, setSubDistricts] = useState([]); + const [subDistricts, setSubDistricts] = useState([]); useEffect(() => { const loadProfile = async () => { @@ -46,13 +46,16 @@ const EditAddress = ({ id, defaultValues }) => { setValue('alamat_wajib_pajak', dataProfile.alamatWajibPajak); setValue('alamat_bisnis', dataProfile.alamatBisnis); setValue('business_name', dataProfile.name); + setValue('city', dataProfile.city?.id); + setValue('district', dataProfile.district?.id); + setValue('subDistrict', dataProfile.subDistrict?.id); }; if (auth) loadProfile(); }, [auth?.parentId]); useEffect(() => { const loadStates = async () => { - let dataStates = await stateApi(); + let dataStates = await stateApi({ tempo: false }); dataStates = dataStates.map((state) => ({ value: state.id, label: state.name, @@ -60,12 +63,12 @@ const EditAddress = ({ id, defaultValues }) => { setStates(dataStates); }; loadStates(); - },[]) + }, []); const watchState = watch('state'); useEffect(() => { - setValue('city', ''); - if(watchState) { + if (watchState) { + setValue('city', ''); const loadCities = async () => { let dataCities = await cityApi({ stateId: watchState }); dataCities = dataCities.map((city) => ({ @@ -81,13 +84,12 @@ const EditAddress = ({ id, defaultValues }) => { }; loadCities(); } - }, [watchState, setValue, getValues]); const watchCity = watch('city'); useEffect(() => { - setValue('district', ''); if (watchCity) { + // setValue('district', ''); const loadDistricts = async () => { let dataDistricts = await districtApi({ cityId: watchCity }); dataDistricts = dataDistricts.map((district) => ({ @@ -97,7 +99,7 @@ const EditAddress = ({ id, defaultValues }) => { setDistricts(dataDistricts); let oldDistrict = getValues('oldDistrict'); if (oldDistrict) { - setValue('district', oldDistrict); + // setValue('district', oldDistrict); setValue('oldDistrict', ''); } }; @@ -107,8 +109,8 @@ const EditAddress = ({ id, defaultValues }) => { const watchDistrict = watch('district'); useEffect(() => { - setValue('subDistrict', ''); if (watchDistrict) { + // setValue('subDistrict', ''); const loadSubDistricts = async () => { let dataSubDistricts = await subDistrictApi({ districtId: watchDistrict, @@ -287,7 +289,11 @@ const EditAddress = ({ id, defaultValues }) => { name='city' control={control} render={(props) => ( - <HookFormSelect {...props} options={cities} disabled={!watchState} /> + <HookFormSelect + {...props} + options={cities} + disabled={!watchState} + /> )} /> <div className='text-caption-2 text-danger-500 mt-1'> @@ -348,7 +354,7 @@ const validationSchema = Yup.object().shape({ mobile: Yup.string().required('Harus di-isi'), street: Yup.string().required('Harus di-isi'), zip: Yup.string().required('Harus di-isi'), - state : Yup.string().required('Harus di-pilih'), + state: Yup.string().required('Harus di-pilih'), city: Yup.string().required('Harus di-pilih'), district: Yup.string().required('Harus di-pilih'), }); |
