import React, { useState, useEffect } from 'react'; import { Head } from '@inertiajs/react'; import { useDispatch } from 'react-redux'; import { setPageTitle } from '@/Components/features/common/headerSlice'; import ModalInput from '@/Components/ModalInput'; import DeleteButton from '@/Components/DeleteButton'; import { UserGroupIcon } from '@heroicons/react/24/outline' import { usePage } from '@inertiajs/react'; import Swal from "sweetalert2" export default function IndexSantri({ santri, fields, options }) { const [selectedSantri, setSelectedSantri] = useState(null); const [isDeleteOpen, setDeleteOpen] = useState(false); const [searchTerm, setSearchTerm] = useState(''); const [filteredSantri, setFilteredSantri] = useState([]); const dispatch = useDispatch(); const { flash } = usePage().props; const openDeleteModal = (item) => { setSelectedSantri(item) setDeleteOpen(true) } useEffect(() => { if (flash.success) { Swal.fire({ icon: 'success', title: 'Success', text: flash.success }); } else if (flash.error) { Swal.fire({ icon: 'success', title: 'Success', text: flash.success }); } }, [flash]); useEffect(() => { dispatch(setPageTitle("Data Santri")); }, [dispatch]); useEffect(() => { if (santri) { setFilteredSantri( santri.filter(item => item.nama.toLowerCase().includes(searchTerm.toLowerCase()) || item.nis.toString().includes(searchTerm) ) ); } }, [searchTerm, santri]); const handleSearch = (e) => { setSearchTerm(e.target.value); }; return (

Data Santri

Overview
setSelectedSantri(null)} />
{filteredSantri.length > 0 ? filteredSantri.map((item, i) => ( )) : ( )}
Name NIS Status Alamat Action
Avatar
{item.nama}
{item.level == 1 ? 'Admin' : 'User'}
{item.nis}
{item.status_santri || "Open"}
{item.alamat || "-"}
Tidak ada data santri.
setDeleteOpen(false)} item={selectedSantri} tableName="payment_types" />
); }