'use client'; import colors from '@/con/colors'; import { Box, Button, Group, Loader, Paper, Stack, Title, NumberInput, Select } from '@mantine/core'; import { IconArrowBack } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; import { useProxy } from 'valtio/utils'; import distribusiAgama from '../../../_state/kependudukan/distribusi-agama'; import { toast } from 'react-toastify'; function CreateDistribusiAgama() { const stateDistribusiAgama = useProxy(distribusiAgama); const router = useRouter(); const [isSubmitting, setIsSubmitting] = useState(false); const agamaOptions = [ { value: 'HINDU', label: 'Hindu' }, { value: 'ISLAM', label: 'Islam' }, { value: 'KRISTEN', label: 'Kristen' }, { value: 'KRISTEN_PROTESTAN', label: 'Kristen Protestan' }, { value: 'KRISTEN_KATOLIK', label: 'Kristen Katolik' }, { value: 'BUDDHA', label: 'Buddha' }, { value: 'KONGHUCU', label: 'Konghucu' }, { value: 'LAINNYA', label: 'Lainnya' }, ]; const currentYear = new Date().getFullYear(); const yearOptions = Array.from({ length: 10 }, (_, i) => ({ value: String(currentYear - i), label: String(currentYear - i), })); const isFormValid = () => { return ( stateDistribusiAgama.create.form.agama?.trim() !== '' && stateDistribusiAgama.create.form.jumlah !== null && stateDistribusiAgama.create.form.jumlah >= 0 && stateDistribusiAgama.create.form.tahun !== null ); }; const resetForm = () => { stateDistribusiAgama.create.form = { agama: '', jumlah: 0, tahun: currentYear, }; }; const handleSubmit = async () => { try { const id = await stateDistribusiAgama.create.create(); if (id) { resetForm(); router.push('/admin/kependudukan/distribusi-agama'); } } catch (error) { console.error('Error creating distribusi agama:', error); toast.error('Terjadi kesalahan saat menambah distribusi agama'); } finally { setIsSubmitting(false); } }; return ( {/* Header */} Tambah Distribusi Agama {/* Form */} { stateDistribusiAgama.create.form.tahun = Number(val || currentYear); }} required /> {/* Tombol Simpan */} ); } export default CreateDistribusiAgama;