import { Paper, List, ListItem, ListItemIcon, ListItemText, Typography, makeStyles, InputLabel, Select, Box, } from "@material-ui/core"; import { ChangeEvent, useState } from "react"; import { useRoomContext } from "../context"; import { FilterState } from "../types/ui"; const useStyles = makeStyles((theme) => ({ drawer: { width: "100%", height: `calc(100% - ${theme.spacing(1)}px)`, padding: theme.spacing(2), overflow: "auto", "-ms-overflow-style": "none", scrollbarWidth: "none", "&::-webkit-scrollbar": { display: "none", }, }, filterBox: { display: "flex", alignItems: "center", gap: theme.spacing(1), }, indicatorContainer: { minWidth: theme.spacing(3), }, indicator: { width: theme.spacing(2), height: theme.spacing(2), borderRadius: "100%", }, free: { background: theme.palette.success.main, }, occupied: { background: theme.palette.grey[500], }, })); export const RoomList = () => { const classes = useStyles(); const { state } = useRoomContext(); const [filter, setFilter] = useState(FilterState.ALL); const handleFilterChange = ( event: ChangeEvent<{ name?: string; value: unknown }> ) => { if (event.target && typeof event.target.value === "string") setFilter(Number.parseInt(event.target.value)); }; return ( Class room avaliability status Filter {state.map.map(({ title }, index) => { if (filter === FilterState.FREE && !state.char[index].free) return ""; else if (filter === FilterState.OCCUPIED && state.char[index].free) return ""; else return (
); })} ); };