diff --git a/src/components/contacts/contacts-components/Sidebar.tsx b/src/components/contacts/contacts-components/Sidebar.tsx index 2795687..e5255c0 100644 --- a/src/components/contacts/contacts-components/Sidebar.tsx +++ b/src/components/contacts/contacts-components/Sidebar.tsx @@ -3,8 +3,10 @@ import { Divider, Drawer, List, + ListItem, ListItemButton, ListItemText, + TextField, Toolbar, } from "@mui/material"; import React from "react"; @@ -13,12 +15,15 @@ import ContactItem from "./sidebar-components/ContactItem"; import { useAppSelector } from "../../../redux/hooks"; import { selectUsers, selectTeam } from "../../../redux/slices/usersSlice"; import { selectFavorites } from "../../../redux/slices/favoritesSlice"; +import UserLite from "../../../api-bodies/UserLite"; const sidebarWidth = 240; const Sidebar: React.FC = () => { const [favoritesOpen, setFavoritesOpen] = React.useState(true); const [teamOpen, setTeamOpen] = React.useState(false); + const [filteredFavorites, setFilteredFavorites] = React.useState([]); + const [filteredTeam, setFilteredTeam] = React.useState([]); const favoritesUuids = useAppSelector(selectFavorites); const favorites = useAppSelector((state) => @@ -27,6 +32,25 @@ const Sidebar: React.FC = () => { const teamUuids = useAppSelector(selectTeam); const team = useAppSelector((state) => selectUsers(state, teamUuids)); + const handleInputFavorites = (e: React.ChangeEvent) => { + const inputText = e.target.value.toLowerCase(); + const result = (inputText == "") ? favorites : + favorites.filter(f => ( + f.name.toLowerCase().slice(0, inputText.length) == inputText.slice(0, inputText.length))); + + setFilteredFavorites(result); + }; + + const handleInputTeam = (e: React.ChangeEvent) => { + + const inputText = e.target.value.toLowerCase(); + const result = (inputText == "") ? team : + team.filter(f => ( + f.name.toLowerCase().slice(0, inputText.length) == inputText.slice(0, inputText.length))); + + setFilteredTeam(result); + }; + return ( { primaryTypographyProps={{ variant: "h6" }} sx={{ textAlign: "center" }} /> + + { + handleInputFavorites(e); + handleInputTeam(e); + }} + // can we make it so the outline doesnt turn white (primary color) when its clicked on? + /> + + + setFavoritesOpen(!favoritesOpen)}> {favoritesOpen ? : } @@ -53,7 +91,7 @@ const Sidebar: React.FC = () => { - {favorites.map((favorite, i) => ( + {filteredFavorites.map((favorite, i) => ( ))} @@ -65,7 +103,7 @@ const Sidebar: React.FC = () => { - {team.map((member, i) => ( + {filteredTeam.map((member, i) => ( ))}