'use client'; import pengelolaanSampahState from '@/app/admin/(dashboard)/_state/lingkungan/pengelolaan-sampah'; import colors from '@/con/colors'; import { Box, Button, Group, Paper, Stack, Text, TextInput, Title } from '@mantine/core'; import { IconArrowBack } from '@tabler/icons-react'; import dynamic from 'next/dynamic'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; import { toast } from 'react-toastify'; import { useProxy } from 'valtio/utils'; const LeafletMap = dynamic(() => import('@/app/admin/(dashboard)/_com/leafletMapCreate'), { ssr: false }); function CreateKeteranganBankSampahTerdekat() { const keteranganState = useProxy(pengelolaanSampahState.keteranganSampah) const router = useRouter(); const [markerPosition, setMarkerPosition] = useState<{ lat: number; lng: number } | null>(null); const resetForm = () => { keteranganState.create.form = { name: "", alamat: "", namaTempatMaps: "", lat: 0, lng: 0, } setMarkerPosition(null) } const handleSubmit = async () => { try { if (!keteranganState.create.form.name) { return toast.error('Nama bank sampah harus diisi'); } if (markerPosition) { keteranganState.create.form.lat = markerPosition.lat; keteranganState.create.form.lng = markerPosition.lng; } else { return toast.error('Silakan pilih lokasi di peta'); } await keteranganState.create.create(); toast.success('Data bank sampah berhasil ditambahkan'); resetForm(); router.push("/admin/lingkungan/pengelolaan-sampah-bank-sampah/keterangan-bank-sampah-terdekat"); } catch (error) { console.error('Error creating bank sampah:', error); toast.error('Gagal menambahkan data bank sampah'); } } return ( Tambah Bank Sampah Terdekat (keteranganState.create.form.name = e.target.value)} required /> (keteranganState.create.form.alamat = e.target.value)} required /> (keteranganState.create.form.namaTempatMaps = e.target.value)} required /> Pilih Lokasi di Peta Klik pada peta untuk menandai lokasi setMarkerPosition(pos)} defaultCenter={{ lat: -8.65, lng: 115.2 }} /> {markerPosition && ( Lokasi dipilih: {markerPosition.lat.toFixed(6)}, {markerPosition.lng.toFixed(6)} )} ); } export default CreateKeteranganBankSampahTerdekat;