import { PersonAddOutlined, PersonRemoveOutlined } from "@mui/icons-material"; import { Box, IconButton, Typography, useTheme } from "@mui/material"; import { useDispatch, useSelector } from "react-redux"; import { useNavigate } from "react-router-dom"; import { setFriends } from "state"; import FlexBetween from "./FlexBetween"; import ProfilePhoto from "./ProfilePhoto"; const Friend = ({ friendId, userName, subtitle, profilePicturePath }) => { const dispatch = useDispatch(); const navigate = useNavigate(); const { _id } = useSelector((state) => state.user); const token = useSelector((state) => state.token); const friends = useSelector((state) => state.user.friends); const { palette } = useTheme(); const primaryLight = palette.primary.light; const primaryDark = palette.primary.dark; const main = palette.neutral.main; const medium = palette.neutral.medium; const isFriend = friends.find((friend) => friend._id === friendId); const handleFriend = async () => { const response = await fetch( `http:/localhost:3001/users/${_id}/${friendId}`, { method: "PATCH", headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json", }, } ); const data = await response.json(); dispatch(setFriends({ friends: data })); }; return ( { navigate(`/profile/${friendId}`); navigate(0); }} > {userName} {subtitle} handleFriend()} sx={{ backgroundColor: primaryLight, p: "0.6rem" }} > {isFriend ? ( ) : ( )} ); }; export default Friend;