"use client"; import { useState, useEffect } from "react"; import { FaSearch, FaEdit, FaTrash, FaPlus } from 'react-icons/fa'; import { getRuangan } from "@/lib/api-helper"; interface Ruangan { id?: number; ID_Ruangan?: number; nama?: string; Nama_Ruangan?: string; [key: string]: any; } interface AdminRuanganProps { onLogout?: () => void; } const AdminRuangan = ({ onLogout }: AdminRuanganProps) => { const [ruanganList, setRuanganList] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(""); const [searchTerm, setSearchTerm] = useState(""); // Buat fetch ruangan list yak useEffect(() => { const fetchRuangan = async () => { try { setLoading(true); setError(""); const response = await getRuangan(); if (response.error) { setError(response.error); setRuanganList([]); return; } // Extract ruangan data dari response const ruanganArray = (response.data as any)?.data || response.data; if (ruanganArray && Array.isArray(ruanganArray)) { setRuanganList(ruanganArray); } else { setRuanganList([]); } } catch (err) { setError(err instanceof Error ? err.message : "Error loading ruangan"); setRuanganList([]); } finally { setLoading(false); } }; fetchRuangan(); }, []); // Filter ruangan by search term const filteredRuangan = ruanganList.filter((ruangan) => { const nama = (ruangan.nama || ruangan.Nama_Ruangan || "").toString().toLowerCase(); return nama.includes(searchTerm.toLowerCase()); }); return (
{/* Header */}

Manajemen Ruangan

Kelola data ruangan rumah sakit

{/* Search dan Add Button */}
setSearchTerm(e.target.value)} className="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:border-blue-500" />
{/* Loading State */} {loading && (
)} {/* Error State */} {error && !loading && (

Error

{error}

)} {/* Ruangan Table */} {!loading && !error && (
{filteredRuangan.length > 0 ? (
{filteredRuangan.map((ruangan, idx) => ( ))}
No Nama Ruangan Aksi
{idx + 1} {ruangan.nama || ruangan.Nama_Ruangan || "-"}
) : (

Tidak ada ruangan ditemukan

)}
)}
); }; export default AdminRuangan;