/* eslint-disable react-hooks/exhaustive-deps */ 'use client' import colors from '@/con/colors'; import { Box, Button, Group, Paper, Stack, TextInput, Title, Tooltip } from '@mantine/core'; import { IconArrowBack } from '@tabler/icons-react'; import { useParams, useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import { useProxy } from 'valtio/utils'; import dataPendidikan from '../../../_state/pendidikan/data-pendidikan'; export default function EditDataPendidikan() { const router = useRouter(); const params = useParams() as { id: string }; const stateDPM = useProxy(dataPendidikan); const id = params.id; // state lokal untuk form const [formData, setFormData] = useState({ name: '', jumlah: '', }); // Load data saat mount useEffect(() => { if (id) { stateDPM.findUnique.load(id).then(() => { const data = stateDPM.findUnique.data; if (data) { setFormData({ name: data.name || '', jumlah: data.jumlah || '', }); } }); } }, [id]); const handleChange = (field: 'name' | 'jumlah', value: string) => { setFormData((prev) => ({ ...prev, [field]: value })); }; const handleSubmit = async () => { // update global state hanya saat submit stateDPM.update.id = id; stateDPM.update.form = { ...formData }; await stateDPM.update.submit(); router.push('/admin/pendidikan/data-pendidikan'); }; return ( Edit Data Pendidikan handleChange('name', e.currentTarget.value)} radius="md" required /> handleChange('jumlah', e.currentTarget.value)} radius="md" required /> ); }