/* eslint-disable react-hooks/exhaustive-deps */ 'use client' import statePolsekTerdekat from '@/app/admin/(dashboard)/_state/keamanan/polsek-terdekat'; import colors from '@/con/colors'; import { Box, Button, Group, Loader, Paper, Stack, TextInput, Title } from '@mantine/core'; import { IconArrowBack } from '@tabler/icons-react'; import { useParams, useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import { toast } from 'react-toastify'; import { useProxy } from 'valtio/utils'; function EditLayananPolsek() { const editState = useProxy(statePolsekTerdekat.layananPolsek); const router = useRouter(); const params = useParams(); const [isSubmitting, setIsSubmitting] = useState(false); const [originalData, setOriginalData] = useState({ nama: '', }); const [formData, setFormData] = useState({ nama: '', }); // Check if form is valid const isFormValid = () => { return formData.nama?.trim() !== ''; }; useEffect(() => { const loadLayananPolsek = async () => { const id = params?.id as string; if (!id) return; try { const data = await editState.update.load(id); if (data) { setFormData({ nama: data.nama || '', }); setOriginalData({ nama: data.nama || '', }); } } catch (error) { console.error('Error loading layanan polsek:', error); toast.error('Gagal memuat data layanan polsek'); } }; loadLayananPolsek(); }, [params?.id]); const handleChange = (e: React.ChangeEvent) => { setFormData((prev) => ({ ...prev, [e.target.name]: e.target.value, })); }; const handleResetForm = () => { setFormData({ nama: originalData.nama, }); toast.info('Form dikembalikan ke data awal'); }; const handleSubmit = async () => { try { setIsSubmitting(true); // update global state hanya saat submit editState.update.form = { ...editState.update.form, nama: formData.nama, }; await editState.update.update(); toast.success('Layanan Polsek berhasil diperbarui!'); router.push('/admin/keamanan/polsek-terdekat/layanan-polsek'); } catch (error) { console.error('Error updating layanan polsek:', error); toast.error('Terjadi kesalahan saat memperbarui layanan polsek'); } finally { setIsSubmitting(false); } }; return ( {/* Back Button + Title */} Edit Layanan Polsek {/* Form Wrapper */} {/* Tombol Simpan */} ); } export default EditLayananPolsek;