import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from '@/components/ui/alert-dialog'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { EmptyState } from '@/components/ui/empty-state'; import { Input } from '@/components/ui/input'; import { Pagination } from '@/components/ui/pagination'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import AppLayout from '@/layouts/app-layout'; import { type BreadcrumbItem } from '@/types'; import { Head, Link, usePage } from '@inertiajs/react'; import { PencilIcon, PlusIcon, Trash2Icon } from 'lucide-react'; import { useEffect, useState } from 'react'; import { Toaster, toast } from 'sonner'; interface ServiceRoom { id: string; code: string; name: string; type: string; class: string; location: string; capacity: number; price: string; status: string; is_active: boolean; created_at: string; } interface PageProps { rooms: { data: ServiceRoom[]; links: Array<{ url: string | null; label: string; active: boolean; }>; }; status?: string; } const breadcrumbs: BreadcrumbItem[] = [ { title: 'Dashboard', href: '/dashboard' }, { title: 'Manajemen Ruangan', href: '/service-rooms' }, ]; export default function ServiceRoomIndex() { const { rooms, status } = usePage().props; const [searchTerm, setSearchTerm] = useState(''); const [filteredRooms, setFilteredRooms] = useState(rooms.data); useEffect(() => { if (status) { toast.success(status); } }, [status]); useEffect(() => { const results = rooms.data.filter((room) => Object.values(room).some((value) => value && value.toString().toLowerCase().includes(searchTerm.toLowerCase())), ); setFilteredRooms(results); }, [searchTerm, rooms.data]); return (

Daftar Ruangan Layanan

setSearchTerm(e.target.value)} />
{filteredRooms.length === 0 ? ( Tambah Ruangan } /> ) : ( <>
Kode Nama Ruangan Jenis Kelas Lokasi Kapasitas Harga/Hari Status Aksi {filteredRooms.map((room) => ( {room.code} {room.name} {room.type} {room.class} {room.location} {room.capacity} {room.price} {room.status} Apakah Anda yakin? Data ruangan akan dihapus permanen. Tindakan ini tidak dapat dibatalkan. Batal Hapus ))}
{rooms.links.length > 3 && (
)} )}
); }