diff --git a/components/Forms/BasicDetailsForm.js b/components/Forms/BasicDetailsForm.js index a55eef8..0159b2d 100644 --- a/components/Forms/BasicDetailsForm.js +++ b/components/Forms/BasicDetailsForm.js @@ -38,7 +38,7 @@ export function BasicDeatilsForm({ editMode }) { const submitType = useRef(null) - const [facilityId, setFacilityId] = useMemo(() => { + const [__, setFacilityId] = useMemo(() => { let id = '' @@ -50,13 +50,12 @@ export function BasicDeatilsForm({ editMode }) { setId(new URL(window.location.href).searchParams.get('facilityId') ?? '') } - // console.log({id}) return [id, setId] }, []) const [submitting, setSubmitting] = useState(false); - const [touchedFields, setTouchedFields] = useState([]); + const [_, setTouchedFields] = useState([]); const [formError, setFormError] = useState(null); @@ -79,7 +78,7 @@ export function BasicDeatilsForm({ editMode }) { const [constituencyOptions, setConstituencyOptions] = useState(options?.constituencies) const [wardOptions, setWardOptions] = useState(options?.wards) - const facilityTypeValue = options?.facility_types?.find(({label}) => label.toLowerCase().trim() == options?.data?.facility_type_parent.toLowerCase().trim())?.value + const facilityTypeValue = options?.facility_types?.find(({label}) => label?.toLowerCase().trim() == options?.data?.facility_type_parent?.toLowerCase().trim())?.value const operationStatusOptions = [ { @@ -586,7 +585,7 @@ export function BasicDeatilsForm({ editMode }) { // console.log({facility: options?.data}) - async function updateFacilityTypeDetailOptions(e) { + async function updateFacilityTypeDetailOptions(e) { try { const facilityTypeDetails = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/facilities/facility_types_details/?is_parent=false`, { headers: { @@ -617,7 +616,7 @@ export function BasicDeatilsForm({ editMode }) { } } - updateFacilityTypeDetailOptions() + updateFacilityTypeDetailOptions() function getFacilityTypeDetailsParent(facilityTypeId, token) { @@ -634,7 +633,7 @@ export function BasicDeatilsForm({ editMode }) { } - function getFacilityTypeDetails(facilityTypeId, token) { + function getFacilityTypeDetails(facilityTypeId, token) { return fetch(`${process.env.NEXT_PUBLIC_API_URL}/facilities/facility_types_details/?is_parent=false&parent=${facilityTypeId}`, { headers: { @@ -740,12 +739,80 @@ export function BasicDeatilsForm({ editMode }) { } } ) - - } + + + // async function fetchDetailOptions() { + // if (facilityTypeValue) { + // try { + // const facilityTypeDetails = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/facilities/facility_types_details/?is_parent=false&parent=${facilityTypeValue}`, { + // headers: { + // 'Accept': 'application/json', + // 'Authorization': `Bearer ${options?.token}` + // } + // }) + + // const filteredFacilityType = (await facilityTypeDetails.json())?.results + + + + // const facilityType = Array.from(options?.facility_types, ({ id, name }) => { + // return { + // label: name, + // value: id + // } + // }) + + + // setFacilityTypeDetailOptions(facilityType ?? options?.facility_type_details) + + // } + // catch (e) { + // console.error(e.message) + // } + // } + + // if(options?.data?.owner_type){ + + // try { + // const owners = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/facilities/owners/?owner_type=${options?.data?.owner_type}`, { + // headers: { + // 'Accept': 'application/json', + // 'Authorization': `Bearer ${options?.token}` + // } + // }) + + // const filteredOwners = (await owners.json())?.results + + // if (!filteredOwners) throw Error('Unable to Fetch Owner Type Details') + + + // const facilityOwnerOptions = Array.from(filteredOwners, ({ id, name }) => { + // return { + // label: name, + // value: id + // } + // }) + + + // setOwnerTypeDetailsOptions(facilityOwnerOptions ?? options?.owner_types) + + // } + // catch (e) { + // console.error(e.message) + // } + + + // } + // } + + + // fetchDetailOptions() + } setIsClient(true) + }, []) @@ -833,7 +900,7 @@ export function BasicDeatilsForm({ editMode }) { <CustomSelect options={options?.facility_types} - defaultValue={facilityTypeValue} + defaultValue={facilityTypeValue ?? ''} placeholder="Select a facility type..." required name='facility_type_parent' // facility_type @@ -862,7 +929,7 @@ export function BasicDeatilsForm({ editMode }) { placeholder="Select facility type details..." onChange={handleSelectChange} onFocus={handleFocus} - defaultValue={options?.data?.facility_type/*options?.facility_type_details?.find(({ label }) => label == options?.data?.facility_type_name)?.value*/} + defaultValue={options?.data?.facility_type ?? '' /*options?.facility_type_details?.find(({ label }) => label == options?.data?.facility_type_name)?.value*/} required name='facility_type' // facility_type_details diff --git a/components/Forms/CommunityUnitsForms.js b/components/Forms/CommunityUnitsForms.js index bc612a2..0e1f0e8 100644 --- a/components/Forms/CommunityUnitsForms.js +++ b/components/Forms/CommunityUnitsForms.js @@ -109,6 +109,9 @@ function EditCommunityUnitsBasicDeatilsForm(props) { setSubmitting(true) + console.log({submitting}) + + const payload = {} const formData = new FormData(event.target) @@ -170,6 +173,7 @@ function EditCommunityUnitsBasicDeatilsForm(props) { } + try { fetch(`${process.env.NEXT_PUBLIC_API_URL}/chul/units/${props?.id}/`, { @@ -214,10 +218,7 @@ function EditCommunityUnitsBasicDeatilsForm(props) { setSubmitting(true) console.error('Error Occured: ' + e.message) } - finally { - setSubmitting(false) - - } + @@ -237,8 +238,6 @@ function EditCommunityUnitsBasicDeatilsForm(props) { onSubmit={handleFormSubmit} > - - {formError && <Alert severity="error" sx={{ width: '100%', marginY: '15px' }}>{formError}</Alert>} {/* CHU Name */} @@ -775,17 +774,17 @@ function EditCommunityUnitsBasicDeatilsForm(props) { <span className="text-medium font-semibold text-white"> { submitting ? - <Spinner /> + <div className='flex gap-2'> + <Spinner /> + <span className='text-white'>Saving.. </span> + </div> + : 'Save and Finish' } </span> - { - submitting && - <span className='text-white'>Saving.. </span> - } - + </button> </div> diff --git a/components/Forms/FacilityContactsForm.js b/components/Forms/FacilityContactsForm.js index c1ff62a..e55c7ee 100644 --- a/components/Forms/FacilityContactsForm.js +++ b/components/Forms/FacilityContactsForm.js @@ -140,7 +140,7 @@ export function FacilityContactsForm() { const currentUrl = new URL(window.document.location.href) - if(options?.data?.facility_contacts.length > 0){ + if(options?.data?.facility_contacts?.length > 0){ // const uid = uuid() setFacilityContacts( options?.data?.facility_contacts?.map((_, i) => ( diff --git a/components/Forms/RegulationForm.js b/components/Forms/RegulationForm.js index f1bc309..281ade2 100644 --- a/components/Forms/RegulationForm.js +++ b/components/Forms/RegulationForm.js @@ -296,7 +296,7 @@ function handleLicenseFileChange (e) { const filteredRegOptions = regOptions.filter(({ label }) => label !== 'Other') - if (options?.data?.owner_type_name.toLowerCase().trim() == "ministry of health") { + if (options?.data?.owner_type_name?.toLowerCase().trim() == "ministry of health") { return filteredRegOptions.filter(({ label }) => { return label.toLowerCase().trim() == "ministry of health"