import { useMemo, useState } from 'react' import Sidebar from '../components/Sidebar.jsx' import Topbar from '../components/Topbar.jsx' import { loadWarga, saveWarga } from '../lib/storage.js' export default function Verifikasi() { const [rows, setRows] = useState(() => loadWarga()) const [search, setSearch] = useState('') const [filterStatus, setFilterStatus] = useState('Semua') const [editId, setEditId] = useState(null) const [editForm, setEditForm] = useState({ nama: '', wilayah: '', penghasilan: '' }) function updateStatus(id, status) { const updated = rows.map(r => { if (r.id === id) { return { ...r, statusValidasi: status } } return r }) setRows(updated) saveWarga(updated) } function mulaiEdit(row) { setEditId(row.id) setEditForm({ nama: row.nama, wilayah: row.wilayah, penghasilan: row.penghasilan }) } function simpanEdit(id) { const updated = rows.map(r => { if (r.id === id) { return { ...r, nama: editForm.nama, wilayah: editForm.wilayah, penghasilan: editForm.penghasilan } } return r }) setRows(updated) saveWarga(updated) setEditId(null) } function hapusData(id) { const confirmDelete = confirm( 'Yakin ingin menghapus data?' ) if (!confirmDelete) return const filtered = rows.filter(r => r.id !== id) setRows(filtered) saveWarga(filtered) } const filteredRows = useMemo(() => { return rows.filter(r => { const cocokNama = r.nama .toLowerCase() .includes( search.toLowerCase() ) const cocokStatus = filterStatus === 'Semua' ? true : r.statusValidasi === filterStatus return cocokNama && cocokStatus }) }, [ rows, search, filterStatus ]) return (

Verifikasi Data

Approve atau reject data warga

setSearch( e.target.value ) } className="border rounded-2xl px-4 py-3 w-full" />
{filteredRows.map(r => ( ))}
ID Nama Wilayah Penghasilan Status Aksi
{r.id} {editId === r.id ? ( setEditForm({ ...editForm, nama: e.target.value }) } className="border rounded-xl px-3 py-2" /> ) : ( r.nama )} {editId === r.id ? ( setEditForm({ ...editForm, wilayah: e.target.value }) } className="border rounded-xl px-3 py-2" /> ) : ( r.wilayah )} {editId === r.id ? ( setEditForm({ ...editForm, penghasilan: e.target.value }) } className="border rounded-xl px-3 py-2" /> ) : ( <>Rp {r.penghasilan} )} {r.statusValidasi === 'Pending' && ( Pending )} {r.statusValidasi === 'Verified' && ( Verified )} {r.statusValidasi === 'Rejected' && ( Rejected )}
{r.statusValidasi === 'Pending' && ( <> )} {editId === r.id ? ( ) : ( )}
) }