import { useQuery } from "@tanstack/react-query"; import Header from "../../Components/Header/Header"; import styles from "../../styles"; import { EquipmentInstancesAPI } from "../../Components/API/API"; import { CircularProgress } from "@mui/material"; import Table from "@mui/material/Table"; import TableBody from "@mui/material/TableBody"; import TableCell from "@mui/material/TableCell"; import TableContainer from "@mui/material/TableContainer"; import TableHead from "@mui/material/TableHead"; import TableRow from "@mui/material/TableRow"; import Paper from "@mui/material/Paper"; import { colors } from "../../styles"; import EditItemModal from "../../Components/EditItemInstanceModal/EditItemInstanceModal"; import { useState } from "react"; import Popup from "reactjs-popup"; import Autocomplete from "@mui/material/Autocomplete"; import SearchIcon from "@mui/icons-material/Search"; export default function EquipmentInstancesListPage() { const [editmodalOpen, SetEditModalOpen] = useState(false); const [selectedItem, SetSelectedItem] = useState(0); const equipment_instances = useQuery({ queryKey: ["equipment_instances"], queryFn: EquipmentInstancesAPI, }); const [filter, setFilter] = useState(null); if (equipment_instances.isLoading) { return (

Loading

); } return (
theme.palette.getContrastText(theme.palette.background.paper), }, }} value={filter} onChange={(_event, newValue) => { setFilter(newValue); }} freeSolo id="custom-input-demo" options={["Available", "Broken", "Glassware", "Miscellaneous"]} renderInput={(params) => (
)} />

Results Found:{" "} { equipment_instances?.data?.filter((equipment) => filter !== null ? // If filter is not null, we filter if it matches any criteria equipment.equipment_name .toLowerCase() .includes(filter.toLowerCase()) || equipment.category .toLowerCase() .includes(filter.toLowerCase()) || equipment.last_updated .toLowerCase() .includes(filter?.toLowerCase()) || equipment.status.toLowerCase() == filter.toLowerCase() : // If filter keyword is null then we just pass through everything as if we did not filter at all true ).length }

ID Name Status Category Last Modified {equipment_instances.data ? ( equipment_instances.data .filter((equipment) => filter !== null ? // If filter is not null, we filter if it matches any criteria equipment.equipment_name .toLowerCase() .includes(filter.toLowerCase()) || equipment.category .toLowerCase() .includes(filter.toLowerCase()) || equipment.last_updated .toLowerCase() .includes(filter?.toLowerCase()) || equipment.status.toLowerCase() == filter.toLowerCase() : // If filter keyword is null then we just pass through everything as if we did not filter at all true ) .map((equipment) => ( { SetSelectedItem(equipment.id); SetEditModalOpen(true); }} > {equipment.id} {equipment.equipment_name} {equipment.status} {equipment.category}
{equipment.last_updated}
{equipment.last_updated_by ? "by " + equipment.last_updated_by : ""}
)) ) : ( <> )}
SetEditModalOpen(false)} modal position={"top center"} contentStyle={styles.popup_center} >
); }