/* 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, Paper, Stack, Text, 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'; import SelectIconProgramEdit from '../../../../_com/selectIconEdit'; interface FormProgramKreatif { name: string; deskripsi: string; slug: string; icon: string; } type IconKey = 'ekowisata' | 'kompetisi' | 'wisata' | 'ekonomi' | 'sampah'; function EditProgramKreatifDesa() { const stateProgramKreatif = useProxy(programKreatifState) const params = useParams() const router = useRouter(); const [formData, setFormData] = useState({ name: '', deskripsi: '', slug: '', icon: '', }) useEffect(() => { const loadProgramKreatif = async () => { const id = params?.id as string; if (!id) return; try { const data = await stateProgramKreatif.update.load(id); if (data) { // ⬇️ FIX PENTING: tambahkan ini stateProgramKreatif.update.id = id; stateProgramKreatif.update.form = { name: data.name, slug: data.slug, deskripsi: data.deskripsi, icon: data.icon, }; 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 handleSubmit = async () => { try { stateProgramKreatif.update.form = { ...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 memuat data program kreatif"); } } return ( Edit Program Kreatif Desa Nama Program Kreatif Desa} placeholder="masukkan nama program kreatif desa" onChange={(val) => { setFormData({ ...formData, name: val.target.value }) }} /> Deskripsi Singkat Program Kreatif Desa} placeholder="masukkan deskripsi singkat program kreatif desa" onChange={(val) => { setFormData({ ...formData, slug: val.target.value }) }} /> Deskripsi { setFormData((prev) => ({ ...prev, deskripsi: htmlContent })); stateProgramKreatif.update.form.deskripsi = htmlContent; }} /> Ikon Program Kreatif Desa { setFormData((prev) => ({ ...prev, icon: value })); stateProgramKreatif.update.form.icon = value; }} /> ); } export default EditProgramKreatifDesa;