summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-09-17 13:53:52 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-09-17 13:53:52 +0700
commitaa44cff228f73d2546466abb6344f249881f94be (patch)
tree37647ca0a7db245da702d551440422a5ba3c0d42 /src
parentaaf907c834343970e1d30b3ef49c13ed5f9d34ed (diff)
<iman< update new register
Diffstat (limited to 'src')
-rw-r--r--src/lib/address/components/EditAddress.jsx195
-rw-r--r--src/lib/auth/components/CompanyProfile.jsx4
-rw-r--r--src/pages/my/address/[id]/edit.jsx28
3 files changed, 134 insertions, 93 deletions
diff --git a/src/lib/address/components/EditAddress.jsx b/src/lib/address/components/EditAddress.jsx
index 520bba51..7a30a3d8 100644
--- a/src/lib/address/components/EditAddress.jsx
+++ b/src/lib/address/components/EditAddress.jsx
@@ -1,18 +1,19 @@
-import { yupResolver } from '@hookform/resolvers/yup'
-import { useRouter } from 'next/router'
-import { useEffect, useState } from 'react'
-import * as Yup from 'yup'
-import cityApi from '../api/cityApi'
-import { Controller, useForm } from 'react-hook-form'
-import districtApi from '../api/districtApi'
-import subDistrictApi from '../api/subDistrictApi'
-import editAddressApi from '../api/editAddressApi'
-import HookFormSelect from '@/core/components/elements/Select/HookFormSelect'
-import { toast } from 'react-hot-toast'
-import Menu from '@/lib/auth/components/Menu'
+import { yupResolver } from '@hookform/resolvers/yup';
+import { useRouter } from 'next/router';
+import { useEffect, useState } from 'react';
+import * as Yup from 'yup';
+import cityApi from '../api/cityApi';
+import { Controller, useForm } from 'react-hook-form';
+import districtApi from '../api/districtApi';
+import subDistrictApi from '../api/subDistrictApi';
+import editAddressApi from '../api/editAddressApi';
+import HookFormSelect from '@/core/components/elements/Select/HookFormSelect';
+import { toast } from 'react-hot-toast';
+import Menu from '@/lib/auth/components/Menu';
const EditAddress = ({ id, defaultValues }) => {
- const router = useRouter()
+ console.log('defaultValues', defaultValues);
+ const router = useRouter();
const {
register,
formState: { errors },
@@ -20,87 +21,90 @@ const EditAddress = ({ id, defaultValues }) => {
watch,
setValue,
getValues,
- control
+ control,
} = useForm({
resolver: yupResolver(validationSchema),
- defaultValues
- })
+ defaultValues,
+ });
- const [cities, setCities] = useState([])
- const [districts, setDistricts] = useState([])
- const [subDistricts, setSubDistricts] = useState([])
+ const [cities, setCities] = useState([]);
+ const [districts, setDistricts] = useState([]);
+ const [subDistricts, setSubDistricts] = useState([]);
useEffect(() => {
const loadCities = async () => {
- let dataCities = await cityApi()
+ let dataCities = await cityApi();
dataCities = dataCities.map((city) => ({
value: city.id,
- label: city.name
- }))
- setCities(dataCities)
- }
- loadCities()
- }, [])
+ label: city.name,
+ }));
+ setCities(dataCities);
+ };
+ loadCities();
+ }, []);
- const watchCity = watch('city')
+ const watchCity = watch('city');
useEffect(() => {
- setValue('district', '')
+ setValue('district', '');
if (watchCity) {
const loadDistricts = async () => {
- let dataDistricts = await districtApi({ cityId: watchCity })
+ let dataDistricts = await districtApi({ cityId: watchCity });
dataDistricts = dataDistricts.map((district) => ({
value: district.id,
- label: district.name
- }))
- setDistricts(dataDistricts)
- let oldDistrict = getValues('oldDistrict')
+ label: district.name,
+ }));
+ setDistricts(dataDistricts);
+ let oldDistrict = getValues('oldDistrict');
if (oldDistrict) {
- setValue('district', oldDistrict)
- setValue('oldDistrict', '')
+ setValue('district', oldDistrict);
+ setValue('oldDistrict', '');
}
- }
- loadDistricts()
+ };
+ loadDistricts();
}
- }, [watchCity, setValue, getValues])
+ }, [watchCity, setValue, getValues]);
- const watchDistrict = watch('district')
+ const watchDistrict = watch('district');
useEffect(() => {
- setValue('subDistrict', '')
+ setValue('subDistrict', '');
if (watchDistrict) {
const loadSubDistricts = async () => {
let dataSubDistricts = await subDistrictApi({
- districtId: watchDistrict
- })
+ districtId: watchDistrict,
+ });
dataSubDistricts = dataSubDistricts.map((district) => ({
value: district.id,
- label: district.name
- }))
- setSubDistricts(dataSubDistricts)
- let oldSubDistrict = getValues('oldSubDistrict')
+ label: district.name,
+ }));
+ setSubDistricts(dataSubDistricts);
+ let oldSubDistrict = getValues('oldSubDistrict');
if (oldSubDistrict) {
- setValue('subDistrict', oldSubDistrict)
- setValue('oldSubDistrict', '')
+ setValue('subDistrict', oldSubDistrict);
+ setValue('oldSubDistrict', '');
}
- }
- loadSubDistricts()
+ };
+ loadSubDistricts();
}
- }, [watchDistrict, setValue, getValues])
+ }, [watchDistrict, setValue, getValues]);
const onSubmitHandler = async (values) => {
const data = {
...values,
+ phone: values.mobile,
+ street: values.street,
city_id: values.city,
district_id: values.district,
- sub_district_id: values.subDistrict
- }
+ sub_district_id: values.subDistrict,
+ };
+ console.log('data', data);
- const address = await editAddressApi({ id, data })
+ const address = await editAddressApi({ id, data });
if (address?.id) {
- toast.success('Berhasil mengubah alamat')
- router.back()
+ toast.success('Berhasil mengubah alamat');
+ router.back();
}
- }
+ };
return (
<div className='max-w-none md:container mx-auto flex p-0 md:py-10'>
@@ -108,7 +112,9 @@ const EditAddress = ({ id, defaultValues }) => {
<Menu />
</div>
<div className='w-full md:w-9/12 p-4 bg-white border border-gray_r-6 rounded'>
- <h1 className='text-title-sm font-semibold mb-6 hidden md:block'>Ubah Alamat</h1>
+ <h1 className='text-title-sm font-semibold mb-6 hidden md:block'>
+ Ubah Alamat
+ </h1>
<form onSubmit={handleSubmit(onSubmitHandler)}>
<div className='grid grid-cols-1 md:grid-cols-2 gap-4'>
<div>
@@ -117,10 +123,16 @@ const EditAddress = ({ id, defaultValues }) => {
name='type'
control={control}
render={(props) => (
- <HookFormSelect {...props} isSearchable={false} options={types} />
+ <HookFormSelect
+ {...props}
+ isSearchable={false}
+ options={types}
+ />
)}
/>
- <div className='text-caption-2 text-danger-500 mt-1'>{errors.type?.message}</div>
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errors.type?.message}
+ </div>
</div>
<div>
@@ -131,7 +143,9 @@ const EditAddress = ({ id, defaultValues }) => {
type='text'
className='form-input'
/>
- <div className='text-caption-2 text-danger-500 mt-1'>{errors.name?.message}</div>
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errors.name?.message}
+ </div>
</div>
<div>
@@ -142,7 +156,9 @@ const EditAddress = ({ id, defaultValues }) => {
type='email'
className='form-input'
/>
- <div className='text-caption-2 text-danger-500 mt-1'>{errors.email?.message}</div>
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errors.email?.message}
+ </div>
</div>
<div>
@@ -153,7 +169,9 @@ const EditAddress = ({ id, defaultValues }) => {
type='tel'
className='form-input'
/>
- <div className='text-caption-2 text-danger-500 mt-1'>{errors.mobile?.message}</div>
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errors.mobile?.message}
+ </div>
</div>
<div>
@@ -164,7 +182,9 @@ const EditAddress = ({ id, defaultValues }) => {
type='text'
className='form-input'
/>
- <div className='text-caption-2 text-danger-500 mt-1'>{errors.street?.message}</div>
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errors.street?.message}
+ </div>
</div>
<div>
@@ -175,7 +195,9 @@ const EditAddress = ({ id, defaultValues }) => {
type='number'
className='form-input'
/>
- <div className='text-caption-2 text-danger-500 mt-1'>{errors.zip?.message}</div>
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errors.zip?.message}
+ </div>
</div>
<div>
@@ -183,9 +205,13 @@ const EditAddress = ({ id, defaultValues }) => {
<Controller
name='city'
control={control}
- render={(props) => <HookFormSelect {...props} options={cities} />}
+ render={(props) => (
+ <HookFormSelect {...props} options={cities} />
+ )}
/>
- <div className='text-caption-2 text-danger-500 mt-1'>{errors.city?.message}</div>
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errors.city?.message}
+ </div>
</div>
<div>
@@ -194,10 +220,16 @@ const EditAddress = ({ id, defaultValues }) => {
name='district'
control={control}
render={(props) => (
- <HookFormSelect {...props} options={districts} disabled={!watchCity} />
+ <HookFormSelect
+ {...props}
+ options={districts}
+ disabled={!watchCity}
+ />
)}
/>
- <div className='text-caption-2 text-danger-500 mt-1'>{errors.district?.message}</div>
+ <div className='text-caption-2 text-danger-500 mt-1'>
+ {errors.district?.message}
+ </div>
</div>
<div>
@@ -206,19 +238,26 @@ const EditAddress = ({ id, defaultValues }) => {
name='subDistrict'
control={control}
render={(props) => (
- <HookFormSelect {...props} options={subDistricts} disabled={!watchDistrict} />
+ <HookFormSelect
+ {...props}
+ options={subDistricts}
+ disabled={!watchDistrict}
+ />
)}
/>
</div>
</div>
- <button type='submit' className='btn-yellow w-full md:w-fit mt-6 ml-0 md:ml-auto'>
+ <button
+ type='submit'
+ className='btn-yellow w-full md:w-fit mt-6 ml-0 md:ml-auto'
+ >
Simpan
</button>
</form>
</div>
</div>
- )
-}
+ );
+};
const validationSchema = Yup.object().shape({
type: Yup.string().required('Harus di-pilih'),
@@ -228,14 +267,14 @@ const validationSchema = Yup.object().shape({
street: Yup.string().required('Harus di-isi'),
zip: Yup.string().required('Harus di-isi'),
city: Yup.string().required('Harus di-pilih'),
- district: Yup.string().required('Harus di-pilih')
-})
+ district: Yup.string().required('Harus di-pilih'),
+});
const types = [
{ value: 'contact', label: 'Contact Address' },
{ value: 'invoice', label: 'Invoice Address' },
{ value: 'delivery', label: 'Delivery Address' },
- { value: 'other', label: 'Other Address' }
-]
+ { value: 'other', label: 'Other Address' },
+];
-export default EditAddress
+export default EditAddress;
diff --git a/src/lib/auth/components/CompanyProfile.jsx b/src/lib/auth/components/CompanyProfile.jsx
index 70713bdf..f1577ca1 100644
--- a/src/lib/auth/components/CompanyProfile.jsx
+++ b/src/lib/auth/components/CompanyProfile.jsx
@@ -21,9 +21,10 @@ const CompanyProfile = () => {
taxName: '',
npwp: '',
alamat_wajib_pajak: '',
+ alamat_bisnis: '',
},
});
-
+ console.log('auth', auth);
const [industries, setIndustries] = useState([]);
useEffect(() => {
const loadIndustries = async () => {
@@ -74,6 +75,7 @@ const CompanyProfile = () => {
alamat_lengkap_text: values.alamat_wajib_pajak,
street: values.alamat_bisnis,
};
+ console.log('data', data);
const isUpdated = await odooApi(
'PUT',
`/api/v1/partner/${auth.parentId}`,
diff --git a/src/pages/my/address/[id]/edit.jsx b/src/pages/my/address/[id]/edit.jsx
index bd680b90..732ec9fc 100644
--- a/src/pages/my/address/[id]/edit.jsx
+++ b/src/pages/my/address/[id]/edit.jsx
@@ -1,11 +1,11 @@
-import Seo from '@/core/components/Seo'
-import AppLayout from '@/core/components/layouts/AppLayout'
-import BasicLayout from '@/core/components/layouts/BasicLayout'
-import DesktopView from '@/core/components/views/DesktopView'
-import MobileView from '@/core/components/views/MobileView'
-import addressApi from '@/lib/address/api/addressApi'
-import EditAddressComponent from '@/lib/address/components/EditAddress'
-import IsAuth from '@/lib/auth/components/IsAuth'
+import Seo from '@/core/components/Seo';
+import AppLayout from '@/core/components/layouts/AppLayout';
+import BasicLayout from '@/core/components/layouts/BasicLayout';
+import DesktopView from '@/core/components/views/DesktopView';
+import MobileView from '@/core/components/views/MobileView';
+import addressApi from '@/lib/address/api/addressApi';
+import EditAddressComponent from '@/lib/address/components/EditAddress';
+import IsAuth from '@/lib/auth/components/IsAuth';
export default function EditAddress({ id, defaultValues }) {
return (
@@ -24,12 +24,12 @@ export default function EditAddress({ id, defaultValues }) {
</BasicLayout>
</DesktopView>
</IsAuth>
- )
+ );
}
export async function getServerSideProps(context) {
- const { id } = context.query
- const address = await addressApi({ id })
+ const { id } = context.query;
+ const address = await addressApi({ id });
const defaultValues = {
type: address.type,
name: address.name,
@@ -41,7 +41,7 @@ export async function getServerSideProps(context) {
oldDistrict: address.district?.id || '',
district: '',
oldSubDistrict: address.subDistrict?.id || '',
- subDistrict: ''
- }
- return { props: { id, defaultValues } }
+ subDistrict: '',
+ };
+ return { props: { id, defaultValues } };
}