Merge pull request #36 from CPSC319-Winter-term-2/mbalsdon-contacts-search

contacts page search
This commit is contained in:
cth0604 2022-03-24 22:04:29 -07:00 committed by GitHub
commit b8ed1e825b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,8 +3,10 @@ import {
Divider, Divider,
Drawer, Drawer,
List, List,
ListItem,
ListItemButton, ListItemButton,
ListItemText, ListItemText,
TextField,
Toolbar, Toolbar,
} from "@mui/material"; } from "@mui/material";
import React from "react"; import React from "react";
@ -19,13 +21,21 @@ const sidebarWidth = 240;
const Sidebar: React.FC = () => { const Sidebar: React.FC = () => {
const [favoritesOpen, setFavoritesOpen] = React.useState<boolean>(true); const [favoritesOpen, setFavoritesOpen] = React.useState<boolean>(true);
const [teamOpen, setTeamOpen] = React.useState<boolean>(false); const [teamOpen, setTeamOpen] = React.useState<boolean>(false);
const [inputText, setInputText] = React.useState<string>("");
const favoritesUuids = useAppSelector(selectFavorites); const favoritesUuids = useAppSelector(selectFavorites);
const favorites = useAppSelector((state) => const favorites = useAppSelector((state) =>
selectUsers(state, favoritesUuids) selectUsers(state, favoritesUuids)
); );
let filteredFavorites = favorites.filter((favorite) =>
favorite.name.toLowerCase().includes(inputText.toLowerCase())
);
const teamUuids = useAppSelector(selectTeam); const teamUuids = useAppSelector(selectTeam);
const team = useAppSelector((state) => selectUsers(state, teamUuids)); const team = useAppSelector((state) => selectUsers(state, teamUuids));
let filteredTeam = team.filter((member) =>
member.name.toLowerCase().includes(inputText.toLowerCase())
);
return ( return (
<Drawer <Drawer
@ -42,18 +52,29 @@ const Sidebar: React.FC = () => {
primaryTypographyProps={{ variant: "h6" }} primaryTypographyProps={{ variant: "h6" }}
sx={{ textAlign: "center" }} sx={{ textAlign: "center" }}
/> />
<ListItem>
<TextField
label="Search Contacts"
variant="outlined"
placeholder="Person"
onChange={(e) => {
setInputText(e.target.value);
}}
/>
</ListItem>
<Divider /> <Divider />
<ListItemButton onClick={() => setFavoritesOpen(!favoritesOpen)}> <ListItemButton onClick={() => setFavoritesOpen(!favoritesOpen)}>
{favoritesOpen ? <ExpandLess /> : <ExpandMore />} {favoritesOpen ? <ExpandLess /> : <ExpandMore />}
<ListItemText primary="Favorites" sx={{ textAlign: "center" }} /> <ListItemText primary="Favorites" sx={{ textAlign: "center" }} />
<ListItemText <ListItemText
primary={favorites.length} primary={filteredFavorites.length}
sx={{ textAlign: "right" }} sx={{ textAlign: "right" }}
/> />
</ListItemButton> </ListItemButton>
<Collapse in={favoritesOpen} timeout="auto" unmountOnExit> <Collapse in={favoritesOpen} timeout="auto" unmountOnExit>
<List disablePadding> <List disablePadding>
{favorites.map((favorite, i) => ( {filteredFavorites.map((favorite, i) => (
<ContactItem contactInfo={favorite} key={i} /> <ContactItem contactInfo={favorite} key={i} />
))} ))}
</List> </List>
@ -61,11 +82,14 @@ const Sidebar: React.FC = () => {
<ListItemButton onClick={() => setTeamOpen(!teamOpen)}> <ListItemButton onClick={() => setTeamOpen(!teamOpen)}>
{teamOpen ? <ExpandLess /> : <ExpandMore />} {teamOpen ? <ExpandLess /> : <ExpandMore />}
<ListItemText primary="Team" sx={{ textAlign: "center" }} /> <ListItemText primary="Team" sx={{ textAlign: "center" }} />
<ListItemText primary={team.length} sx={{ textAlign: "right" }} /> <ListItemText
primary={filteredTeam.length}
sx={{ textAlign: "right" }}
/>
</ListItemButton> </ListItemButton>
<Collapse in={teamOpen} timeout="auto" unmountOnExit> <Collapse in={teamOpen} timeout="auto" unmountOnExit>
<List disablePadding> <List disablePadding>
{team.map((member, i) => ( {filteredTeam.map((member, i) => (
<ContactItem contactInfo={member} key={i} /> <ContactItem contactInfo={member} key={i} />
))} ))}
</List> </List>