/* eslint-disable react-hooks/exhaustive-deps */ 'use client' import EditEditor from '@/app/admin/(dashboard)/_com/editEditor'; import programKreatifState from '@/app/admin/(dashboard)/_state/inovasi/program-kreatif'; import colors from '@/con/colors'; import { Box, Button, Group, Paper, Stack, Text, TextInput, Title, Tooltip, } 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'; import SelectIconProgramEdit from '../../../../_com/selectIconEdit'; import { IconKey } from '@/app/admin/(dashboard)/_com/iconMap'; interface FormProgramKreatif { name: string; deskripsi: string; slug: string; icon: string; } function EditProgramKreatifDesa() { const stateProgramKreatif = useProxy(programKreatifState); const params = useParams(); const router = useRouter(); const [formData, setFormData] = useState({ name: '', deskripsi: '', slug: '', icon: '', }); // Load data hanya sekali berdasarkan params.id useEffect(() => { const loadProgramKreatif = async () => { const id = params?.id as string; if (!id) return; try { const data = await stateProgramKreatif.update.load(id); if (data) { stateProgramKreatif.update.id = id; setFormData({ name: data.name || '', slug: data.slug || '', deskripsi: data.deskripsi || '', icon: data.icon || '', }); } } catch (error) { console.error('Error loading program kreatif:', error); toast.error('Gagal memuat data program kreatif'); } }; loadProgramKreatif(); }, [params?.id]); const handleChange = (field: keyof FormProgramKreatif) => (value: string) => { setFormData((prev) => ({ ...prev, [field]: value })); }; const handleSubmit = async () => { try { stateProgramKreatif.update.form = { name: formData.name.trim(), deskripsi: formData.deskripsi.trim(), slug: formData.slug.trim(), icon: formData.icon.trim(), }; await stateProgramKreatif.update.submit(); router.push('/admin/inovasi/program-kreatif-desa'); } catch (error) { console.error('Error updating program kreatif:', error); toast.error('Gagal menyimpan program kreatif'); } }; return ( Edit Program Kreatif Desa handleChange('name')(e.target.value)} required /> handleChange('slug')(e.target.value)} required /> Deskripsi Ikon Program Kreatif Desa ); } export default EditProgramKreatifDesa;