import { useContext, useEffect, useRef, useState } from 'react'; import { Dialog, DialogBody, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { Alert, KeenIcon } from '@/components'; import { Input } from '@/components/ui/input'; import { Button } from '@/components/ui/button'; import { apiConfig } from '@/config/api.config'; import axios from 'axios'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { useManageSucosContext } from '../hooks/useManageSucosContext'; interface AldeiasProps { id: number; name: string; } const API_URL = apiConfig.service_master_data; const SearchDialog = () => { const parentRef = useRef(null); const { showSearchDialog, handleSearchDialog, sucos } = useManageSucosContext(); console.log('Sucos:', sucos); // const { sucos, getSucosLists } = useContext(ManageSucosContext); // useEffect(() => { // getSucosLists(1, 1000, [], []); // Memuat semua sucos // }, []); const [alert, setAlert] = useState({ show: false, message: '' }); const initialState = { id: 0, name: '' }; const [formField, setFormField] = useState(initialState); const resetForm = () => { setFormField(initialState); }; const [aldeias, setAldeias] = useState([]); const [isFound, setIsFound] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); const id = Number(formField.id); if (formField.id === 0) { setAlert({ show: true, message: 'Please fill name field.' }); return; } try { const response = await axios.get(`${API_URL}/sucos/aldeias/${id}`); if (response.data.status) { setAldeias(response.data.data); setIsFound(true); console.log('Found aldeias: ', response.data.data); } else { setAldeias([]); setIsFound(false); setAlert({ show: true, message: 'No aldeias found.' }); } } catch (error) { console.error('Error fetching aldeias', error); setAlert({ show: true, message: 'Failed to fetch aldeias. Please try again.' }); } setAlert({ show: false, message: '' }); }; const handleReset = () => { setFormField(initialState); setIsFound(false); setAldeias([]); }; // console.log(aldeias); return ( handleSearchDialog(open)}>

Search Aldeias

{ handleSearchDialog(false); resetForm(); }} >
{alert.show && ( {alert.message} )}
{isFound && aldeias.length > 0 && (

Aldeias:


{aldeias.map((aldeiasID) => aldeiasID.name).join(', ')}
)}
); }; export default SearchDialog;