import { useCallback, useEffect, useRef, useState } from 'react'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Dialog, DialogBody, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { useInstansiContext } from '../hooks'; import { Input } from '@/components/ui/input'; import { Button } from '@/components/ui/button'; import { apiConfig } from '@/config/api.config'; import { Alert, KeenIcon, useDataGrid } from '@/components'; import { toast } from 'sonner'; import { useCallApi } from '@/hooks'; import { doSaveLogActivity } from '@/actions/GlobalActions'; import { Textarea } from '@/components/ui/textarea'; const API_URL = apiConfig.service_credit; const AddDialog = () => { const parentRef = useRef(null); const { showAddDialog, handleAddDialog } = useInstansiContext(); const { reload } = useDataGrid(); const { PostData } = useCallApi(); const [alert, setAlert] = useState({ show: false, message: '' }); const initialState = { name: '', code: '', description: '', type: '', pic_name: '', pic_email: '', pic_phone: '', status: '' }; const [formField, setFormField] = useState(initialState); const resetForm = () => { setFormField(initialState); }; /* actions */ const doCreate = useCallback( async (e: React.FormEvent) => { e.preventDefault(); const response = await PostData(`${API_URL}/company/create`, formField); if (response?.status) { setAlert((prev) => ({ ...prev, show: false, message: '' })); handleAddDialog(false); toast.success('Success Create Insansi'); reload(); const createActivity = { module: 'Instansi', description: `Add Insansi => ${formField.name}`, action: 'C' }; doSaveLogActivity(createActivity); resetForm(); } else { setAlert((prev) => ({ ...prev, show: true, message: response?.message })); } }, [formField] ); return ( handleAddDialog(open)}>

Tambah Instansi

{alert.show && (

{alert.message}

)}

Instansi Information

setFormField((prev) => ({ ...prev, name: target.value })) } />
setFormField((prev) => ({ ...prev, code: target.value })) } />