'use client'
import laporanPublikState from '@/app/admin/(dashboard)/_state/keamanan/laporan-publik';
import colors from '@/con/colors';
import { Box, Button, Center, ColorSwatch, Flex, Group, Modal, Pagination, Paper, SimpleGrid, Skeleton, Stack, Text, TextInput, Title } from '@mantine/core';
import { DateTimePicker } from '@mantine/dates';
import { useDebouncedValue, useDisclosure, useShallowEffect } from '@mantine/hooks';
import { IconArrowRight, IconPlus } from '@tabler/icons-react';
import { useState } from 'react';
import { useProxy } from 'valtio/utils';
import BackButton from '../../desa/layanan/_com/BackButto';
import { useTransitionRouter } from 'next-view-transitions';
import CreateEditor from '@/app/admin/(dashboard)/_com/createEditor';
function Page() {
const [search, setSearch] = useState("");
const router = useTransitionRouter()
const [debouncedSearch] = useDebouncedValue(search, 500);
const [opened, { open, close }] = useDisclosure(false);
const stateLaporan = useProxy(laporanPublikState);
const {
data,
page,
totalPages,
loading,
load,
} = stateLaporan.findMany;
useShallowEffect(() => {
load(page, 6, debouncedSearch);
}, [page, debouncedSearch]);
if (loading || !data) {
return (
);
}
const resetForm = () => {
stateLaporan.create.form = {
judul: '',
lokasi: '',
tanggalWaktu: '',
kronologi: '',
};
};
const handleSubmit = async () => {
await stateLaporan.create.create();
resetForm();
};
return (
setSearch(e.currentTarget.value)}
/>
Laporan Keamanan Lingkungan
Laporan Terbaru
Terselesaikan
Dalam Proses
Gagal
{data.map((v, k) => {
return (
{v.judul}
{v.tanggalWaktu
? new Date(v.tanggalWaktu).toLocaleString('id-ID')
: '-'}
Penanganan:
{v.penanganan?.length ? (
v.penanganan.map((item, index) => (
))
) : (
Belum ada penanganan
)}
{v.status}
}
onClick={() => router.push(`/darmasaba/keamanan/laporan-publik/${v.id}`)}
>Lihat Detail Kronologi
)
})}
load(newPage)}
total={totalPages}
my="md"
/>
(stateLaporan.create.form.judul = e.target.value)}
label={Judul Laporan Publik}
placeholder="Masukkan judul laporan publik"
required
/>
(stateLaporan.create.form.lokasi = e.target.value)}
label={Lokasi Laporan Publik}
placeholder="Masukkan lokasi laporan publik"
required
/>
Tanggal Laporan Publik}
value={
stateLaporan.create.form.tanggalWaktu
? new Date(stateLaporan.create.form.tanggalWaktu)
: null
}
onChange={(val) => {
stateLaporan.create.form.tanggalWaktu = val ? val.toString() : '';
}}
/>
Kronologi
{
stateLaporan.create.form.kronologi = htmlContent;
}}
/>
);
}
export default Page;