/* eslint-disable react-hooks/exhaustive-deps */ 'use client' import colors from '@/con/colors'; import { Box, Button, Group, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Title } from '@mantine/core'; import { IconEdit, IconPlus, IconSearch, IconTrash } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import { useProxy } from 'valtio/utils'; import HeaderSearch from '../../_com/header'; import { ModalKonfirmasiHapus } from '../../_com/modalKonfirmasiHapus'; import user from '../../_state/user/user-state'; function Role() { const [search, setSearch] = useState(''); return ( } value={search} onChange={(e) => setSearch(e.currentTarget.value)} /> ); } function ListRole({ search }: { search: string }) { const listDataState = useProxy(user.roleState) const router = useRouter(); const [modalHapus, setModalHapus] = useState(false) const [selectedId, setSelectedId] = useState(null) useEffect(() => { listDataState.findMany.load() }, []) const handleDelete = () => { if (selectedId) { listDataState.delete.delete(selectedId) setModalHapus(false) setSelectedId(null) listDataState.findMany.load() } } const filteredData = (listDataState.findMany.data || []).filter(item => { const keyword = search.toLowerCase(); return ( item.name.toLowerCase().includes(keyword) ); }); if (!listDataState.findMany.data) { return ( ) } return ( Daftar Role Role Edit Hapus {filteredData.map((item) => ( {item.name} ))}
{/* Modal Konfirmasi Hapus */} setModalHapus(false)} onConfirm={handleDelete} text='Apakah anda yakin ingin menghapus kategori Berita ini?' />
) } export default Role;