import { useState } from "react"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@/components/ui/dialog"; import { useFacilities, useCreateFacility, useUpdateFacility, useDeleteFacility, useAssets, useCreateAsset, useDeleteAsset } from "@/hooks/queries"; import { Search, Plus, Trash2, Edit, Building } from "lucide-react"; import { useToast } from "@/hooks/use-toast"; export default function AdminFacilities() { const [search, setSearch] = useState(""); const [section, setSection] = useState<"facilities" | "assets">("facilities"); const [facOpen, setFacOpen] = useState(false); const [facEditOpen, setFacEditOpen] = useState(false); const [facEditId, setFacEditId] = useState(null); const [assetOpen, setAssetOpen] = useState(false); const [facForm, setFacForm] = useState({ name: "", code: "" }); const [assetForm, setAssetForm] = useState({ name: "", code: "" }); const { toast } = useToast(); const facQ = useFacilities(); const assetQ = useAssets(); const createFac = useCreateFacility(); const updateFac = useUpdateFacility(); const delFac = useDeleteFacility(); const createAsset = useCreateAsset(); const delAsset = useDeleteAsset(); const loading = section === "facilities" ? facQ.isLoading : assetQ.isLoading; const facilities = facQ.data?.data ?? facQ.data?.items ?? []; const assets = assetQ.data?.data ?? assetQ.data?.items ?? []; if (loading) { return (
); } const q = search.toLowerCase(); const filteredFac = facilities.filter( (f) => f.name?.toLowerCase().includes(q) || f.code?.toLowerCase().includes(q), ); const filteredAssets = assets.filter( (a) => a.name?.toLowerCase().includes(q) || a.code?.toLowerCase().includes(q) || a.product_name?.toLowerCase().includes(q), ); return (

Facilities

Facilities and fixed assets.

setSearch(e.target.value)} className="pl-9" />
{section === "facilities" ? ( # Name Code Actions {filteredFac.map((f, i) => ( {i + 1} {f.name} {f.code}
))}
) : ( # Name Code Product Actions {filteredAssets.map((a, i) => ( {i + 1} {a.name} {a.code} {a.product_name} ))}
)} Create facility
setFacForm((f) => ({ ...f, name: e.target.value }))} />
setFacForm((f) => ({ ...f, code: e.target.value }))} />
Edit facility
setFacForm((f) => ({ ...f, name: e.target.value }))} />
setFacForm((f) => ({ ...f, code: e.target.value }))} />
Create asset
setAssetForm((f) => ({ ...f, name: e.target.value }))} />
setAssetForm((f) => ({ ...f, code: e.target.value }))} />
); }