'use client' import colors from '@/con/colors'; import { Box, Button, Group, Paper, Skeleton, Stack, Text } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconArrowBack, IconEdit, IconTrash } from '@tabler/icons-react'; import { useParams, useRouter } from 'next/navigation'; import { useState } from 'react'; import { useProxy } from 'valtio/utils'; import { ModalKonfirmasiHapus } from '../../../_com/modalKonfirmasiHapus'; import laporanPublikState from '../../../_state/keamanan/laporan-publik'; function DetailLaporanPublik() { const [modalHapus, setModalHapus] = useState(false); const [selectedId, setSelectedId] = useState(null); const stateLaporan = useProxy(laporanPublikState); const params = useParams(); const router = useRouter(); useShallowEffect(() => { stateLaporan.findUnique.load(params?.id as string); }, []); const handleDelete = () => { if (selectedId) { stateLaporan.delete.byId(selectedId); setModalHapus(false); setSelectedId(null); router.push('/admin/keamanan/laporan-publik'); } }; if (!stateLaporan.findUnique.data) { return ( ); } const data = stateLaporan.findUnique.data; return ( {/* Tombol Kembali */} Detail Laporan Publik Judul Laporan Publik {data.judul || '-'} Tanggal Laporan Publik {data.tanggalWaktu ? new Date(data.tanggalWaktu).toLocaleString('id-ID') : '-'} Lokasi {data.lokasi || '-'} Status {data.status || '-'} Kronologi Penanganan {data.penanganan?.length ? ( data.penanganan.map((item, index) => ( )) ) : ( Belum ada penanganan )} {/* Tombol Aksi */} {/* Modal Konfirmasi Hapus */} setModalHapus(false)} onConfirm={handleDelete} text="Apakah anda yakin ingin menghapus laporan publik ini?" /> ); } export default DetailLaporanPublik;