'use client' import colors from '@/con/colors'; import { Box, Button, Group, Loader, Paper, Stack, Text, TextInput, Title } from '@mantine/core'; import { IconArrowBack } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useProxy } from 'valtio/utils'; import CreateEditor from '../../../_com/createEditor'; import SelectIconProgram from '../../../_com/selectIcon'; import dataLingkunganDesaState from '../../../_state/lingkungan/data-lingkungan-desa'; import { useState } from 'react'; import { toast } from 'react-toastify'; function CreateDataLingkunganDesa() { const stateCreate = useProxy(dataLingkunganDesaState); const router = useRouter(); const [isSubmitting, setIsSubmitting] = useState(false); // Helper function to check if HTML content is empty const isHtmlEmpty = (html: string) => { // Remove all HTML tags and check if there's any text content const textContent = html.replace(/<[^>]*>/g, '').trim(); return textContent === ''; }; // Check if form is valid const isFormValid = () => { return ( stateCreate.create.form.name?.trim() !== '' && stateCreate.create.form.icon?.trim() !== '' && stateCreate.create.form.jumlah?.trim() !== '' && !isHtmlEmpty(stateCreate.create.form.deskripsi) ); }; const resetForm = () => { stateCreate.create.form = { name: '', deskripsi: '', jumlah: '', icon: '', }; }; const handleSubmit = async () => { try { setIsSubmitting(true); await stateCreate.create.create(); resetForm(); router.push('/admin/lingkungan/data-lingkungan-desa'); } catch (error) { console.error("Error creating data lingkungan desa:", error); toast.error("Terjadi kesalahan saat menambahkan data lingkungan desa"); } finally { setIsSubmitting(false); } }; return ( {/* Header */} Tambah Data Lingkungan Desa {/* Card Form */} Nama Data Lingkungan Desa} placeholder="Masukkan nama data lingkungan desa" value={stateCreate.create.form.name || ''} onChange={(val) => (stateCreate.create.form.name = val.target.value)} required /> Ikon Data Lingkungan Desa (stateCreate.create.form.icon = value)} /> Jumlah Data Lingkungan Desa} placeholder="Masukkan jumlah data lingkungan desa" value={stateCreate.create.form.jumlah || ''} onChange={(e) => (stateCreate.create.form.jumlah = e.currentTarget.value)} required /> Deskripsi Data Lingkungan Desa (stateCreate.create.form.deskripsi = htmlContent) } /> {/* Submit Button */} {/* Tombol Simpan */} ); } export default CreateDataLingkunganDesa;