From ec870d3599647628974867ac6259d7f141ee85d7 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Wed, 18 Jan 2023 17:09:18 +0700 Subject: Fixing bug edit district and subdistrict, doesnt show old value --- src/pages/my/address/[id]/edit.js | 27 ++++++++++++++++++++------- src/pages/my/address/create.js | 2 +- src/pages/my/address/index.js | 19 ++++++++++--------- 3 files changed, 31 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/pages/my/address/[id]/edit.js b/src/pages/my/address/[id]/edit.js index 78eef635..13f166ab 100644 --- a/src/pages/my/address/[id]/edit.js +++ b/src/pages/my/address/[id]/edit.js @@ -38,13 +38,15 @@ export async function getServerSideProps( context ) { street: address.street, zip: address.zip, city: address.city?.id, - district: address.district?.id || '', - subDistrict: address.sub_district?.id || '' + oldDistrict: address.district?.id || '', + district: '', + oldSubDistrict: address.sub_district?.id || '', + subDistrict: '', }; return { props: { id, defaultValues } }; } -export default function CreateAddress({ id, defaultValues }) { +export default function EditAddress({ id, defaultValues }) { const router = useRouter(); const { register, @@ -52,6 +54,7 @@ export default function CreateAddress({ id, defaultValues }) { handleSubmit, watch, setValue, + getValues, control, } = useForm({ resolver: yupResolver(validationSchema), @@ -79,23 +82,33 @@ export default function CreateAddress({ id, defaultValues }) { let dataDistricts = await apiOdoo('GET', `/api/v1/district?city_id=${watchCity}`); dataDistricts = dataDistricts.map((district) => ({ value: district.id, label: district.name })); setDistricts(dataDistricts); + let oldDistrict = getValues('oldDistrict'); + if (oldDistrict) { + setValue('district', oldDistrict); + setValue('oldDistrict', ''); + } }; loadDistricts(); } - }, [ watchCity, setValue ]); + }, [ watchCity, setValue, getValues ]); const watchDistrict = watch('district'); - useEffect(() => { + useEffect(() => { setValue('subDistrict', ''); if (watchDistrict) { const loadSubDistricts = async () => { let dataSubDistricts = await apiOdoo('GET', `/api/v1/sub_district?district_id=${watchDistrict}`); dataSubDistricts = dataSubDistricts.map((district) => ({ value: district.id, label: district.name })); setSubDistricts(dataSubDistricts); + let oldSubDistrict = getValues('oldSubDistrict'); + if (oldSubDistrict) { + setValue('subDistrict', oldSubDistrict); + setValue('oldSubDistrict', ''); + } }; loadSubDistricts(); } - }, [ watchDistrict, setValue ]) + }, [ watchDistrict, setValue, getValues ]) const onSubmitHandler = async (values) => { const parameters = { @@ -123,7 +136,7 @@ export default function CreateAddress({ id, defaultValues }) { } />
{ errors.type?.message }
diff --git a/src/pages/my/address/create.js b/src/pages/my/address/create.js index 5e9aaab8..71f73a64 100644 --- a/src/pages/my/address/create.js +++ b/src/pages/my/address/create.js @@ -121,7 +121,7 @@ export default function CreateAddress() { } />
{ errors.type?.message }
diff --git a/src/pages/my/address/index.js b/src/pages/my/address/index.js index 787cfcfa..236e4b60 100644 --- a/src/pages/my/address/index.js +++ b/src/pages/my/address/index.js @@ -54,17 +54,18 @@ export default function Address() {
changeSelectedAddress(address.id)} > -
-
{ type }
- { auth?.partner_id == address.id && ( -
Utama
- ) } +
changeSelectedAddress(address.id)}> +
+
{ type }
+ { auth?.partner_id == address.id && ( +
Utama
+ ) } +
+

{ address.name }

+

{ address.mobile }

+

{ address.street } { address.street2 }

-

{ address.name }

-

{ address.mobile }

-

{ address.street } { address.street2 }

Ubah Alamat
); -- cgit v1.2.3