This commit is contained in:
2024-05-06 11:47:23 +07:00
parent 7ee4aceaa6
commit 2317d36779

View File

@@ -203,7 +203,7 @@ export default function AppointmentForm({ isEdit, id, currentAppointment }: Prop
}, [hospitalOptions, defaultValues]); }, [hospitalOptions, defaultValues]);
// Autocomplite drugs // Autocomplete drugs
const [drugOptions, setDrugsOptions] = useState([]); const [drugOptions, setDrugsOptions] = useState([]);
const [selectedDrugsOptions, setSelectedDrugsOptions] = useState({}); const [selectedDrugsOptions, setSelectedDrugsOptions] = useState({});
@@ -215,31 +215,45 @@ export default function AppointmentForm({ isEdit, id, currentAppointment }: Prop
setValue(`medicine.${index}.drug_id`, newValue ? newValue.value : ''); setValue(`medicine.${index}.drug_id`, newValue ? newValue.value : '');
}; };
// Ambil data dari API dan atur opsi rumah sakit // Ambil data dari API dan atur opsi obat
useEffect(() => { useEffect(() => {
axios.get('drugs') axios.get('drugs')
.then((response) => { .then((response) => {
setDrugsOptions(response.data.data); const data = response.data.data;
// Set nilai default jika data tidak kosong
if (data.length > 0) {
// Pilih nilai default pertama
setSelectedDrugsOptions({ 0: data[0] });
setValue('medicine.0.drug_id', data[0] ? data[0].value : '');
}
setDrugsOptions(data);
}) })
.catch((error) => { .catch((error) => {
console.error('Error fetching drug options:', error); console.error('Error fetching drug options:', error);
}); });
}, []); // useEffect dijalankan hanya sekali saat komponen dimount }, []); // useEffect dijalankan hanya sekali saat komponen dimount
// Autocomplite unit // Autocomplete unit
const [unitOptions, setUnitsOptions] = useState([]); const [unitOptions, setUnitsOptions] = useState([]);
const [selectedUnitsOptions, setSelectedUnitsOptions] = useState({}); const [selectedUnitsOptions, setSelectedUnitsOptions] = useState({});
// Ambil data dari API dan atur opsi rumah sakit
// Ambil data dari API dan atur opsi satuan
useEffect(() => { useEffect(() => {
axios.get('units') axios.get('units')
.then((response) => { .then((response) => {
setUnitsOptions(response.data.data); const data = response.data.data;
// Set nilai default jika data tidak kosong
if (data.length > 0) {
// Pilih nilai default pertama
setSelectedUnitsOptions({ 0: data[0] });
setValue('medicine.0.unit_id', data[0] ? data[0].value : '');
}
setUnitsOptions(data);
}) })
.catch((error) => { .catch((error) => {
console.error('Error fetching unit options:', error); console.error('Error fetching unit options:', error);
}); });
}, []); // useEffect dijalankan hanya sekali saat komponen dimount }, []); // useEffect dijalankan hanya sekali saat komponen dimount
const handleAutocompleteChangeUnit = (newValue, index) => { const handleAutocompleteChangeUnit = (newValue, index) => {
setSelectedUnitsOptions((prevState) => ({ setSelectedUnitsOptions((prevState) => ({
@@ -251,24 +265,20 @@ export default function AppointmentForm({ isEdit, id, currentAppointment }: Prop
useEffect(() => { useEffect(() => {
if (defaultValues.medicine.length > 0) { if (defaultValues.medicine.length > 0) {
defaultValues.medicine.map((med, index) => { defaultValues.medicine.forEach((med, index) => {
const selectedDrugId = drugOptions.find((drug) => { const selectedDrugId = drugOptions.find((drug) => drug.value === med.drug_id);
return drug.value == med.drug_id handleAutocompleteChange(selectedDrugId, index);
});
handleAutocompleteChange(selectedDrugId,index)
const selectedUnitId = unitOptions.find((unit) => { const selectedUnitId = unitOptions.find((unit) => unit.value === med.unit_id);
return unit.value == med.unit_id handleAutocompleteChangeUnit(selectedUnitId, index);
});
handleAutocompleteChangeUnit(selectedUnitId,index) // Lakukan tindakan lainnya sesuai kebutuhan Anda
});
// Contoh: Lakukan tindakan lainnya sesuai kebutuhan Anda
});
} else { } else {
console.log('Medicine is empty'); console.log('Medicine is empty');
} }
}, [defaultValues.medicine]); }, [defaultValues.medicine]);
const { const {
reset, reset,