import { Alert, useDataGrid } from '@/components'; import { useManageMenusContext } from '../hooks/useManageMenusContext'; import { useCallApi } from '@/hooks'; import { apiConfig } from '@/config/api.config'; import React, { useCallback, useState, useEffect } from 'react'; import { toast } from 'sonner'; import { Dialog, DialogBody, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { Input } from '@/components/ui/input'; import { Button } from '@/components/ui/button'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { doSaveLogActivity } from '@/actions/GlobalActions'; import { initialStateMenu, validateFormsMenu } from './Types'; import { NumericFormat } from 'react-number-format'; const API_URL = apiConfig.service_dashboard; const EditDialog = () => { const { showEditDialog, handleEditDialog, selectedMenu, setSelectedMenu, parents }: any = useManageMenusContext(); const { reload } = useDataGrid(); const { PutData } = useCallApi(); const [isSubmitting, setIsSubmitting] = useState(false); const [errors, setErrors] = useState>({}); const handleUpdate = async (e: React.FormEvent) => { e.preventDefault(); setIsSubmitting(true); if (!validateFormsMenu(selectedMenu, setErrors)) { setIsSubmitting(false); return; } try { const updateMenu = selectedMenu; if (updateMenu.id_parent === null) updateMenu.id_parent = ''; delete updateMenu.parentName; const response = await PutData(`${API_URL}/menus/update/${selectedMenu.id}`, selectedMenu); if (response?.status) { handleEditDialog(false, null); resetForm(); toast.success('Success Update Menu'); const createActivity = { module: 'Manage Menu', description: `Update Menu => ${selectedMenu.name}`, action: 'U' }; doSaveLogActivity(createActivity); reload(); } else { toast.error(response?.message); } } catch (error) { toast.error('Something went wrong, please trt again.'); } finally { setIsSubmitting(false); setErrors({}); } }; const resetForm = () => { setSelectedMenu(initialStateMenu); setErrors({}); }; return ( handleEditDialog(open, null)}> Menu - Update
{/*
*/} { setSelectedMenu({ ...selectedMenu, module: e.target.value }); setErrors({ ...errors, module: '' }); }} /> {errors.module && ( {errors.module} )} {/*
*/}
{ setSelectedMenu({ ...selectedMenu, name: e.target.value }); setErrors({ ...errors, name: '' }); }} /> {errors.name && {errors.name}}
setSelectedMenu({ ...selectedMenu, link: e.target.value })} /> {errors.link && {errors.link}}
{errors.id_parent && ( {errors.id_parent} )}
setSelectedMenu({ ...selectedMenu, order_number: e.floatValue ?? null }) } />
setSelectedMenu({ ...selectedMenu, icon: e.target.value })} />
{errors.status && ( {errors.status} )}
{/*
setSelectedMenu({ ...selectedMenu, status: e.target.value })} inputProps={{ name: 'status', id: 'uncontrolled-native', }} >
*/}
); }; export default EditDialog;