import { Box, Button, IconButton, Typography } from "@mui/material"; import React from "react"; import PhoneIcon from "@mui/icons-material/Phone"; import VideocamIcon from "@mui/icons-material/Videocam"; import GroupsIcon from "@mui/icons-material/Groups"; import AddIcon from "@mui/icons-material/Add"; import UserLite from "../../../../api-bodies/UserLite"; import UserStatus from "../../../../api-bodies/UserStatus"; import { useAppSelector, useAppDispatch } from "../../../../redux/hooks"; import { selectUserStatus, selectMeeting, } from "../../../../redux/slices/meetingsAndUserStatusSlice"; import { selectFavorites, addFavorite, removeFavorite, } from "../../../../redux/slices/favoritesSlice"; import RemoveIcon from "@mui/icons-material/Remove"; import { MeetingStatus } from "../../../../utils"; import { selectMe } from "../../../../redux/slices/usersSlice"; interface Props { contactInfo: UserLite; } const UpperBody: React.FC = (props) => { const dispatch = useAppDispatch(); const userStatus: UserStatus = useAppSelector((state) => selectUserStatus(state, props.contactInfo.uuid) ); const me = useAppSelector(selectMe); const favoritesUuids = useAppSelector(selectFavorites); const detailedMeeting = useAppSelector((state) => selectMeeting(state, userStatus.meetingId) ); const meetingStatus: MeetingStatus = userStatus && userStatus.inMeeting ? MeetingStatus.IN_MEETING : MeetingStatus.NOT_IN_MEETING; return ( {props.contactInfo.name} {!favoritesUuids.includes(props.contactInfo.uuid) ? ( ) : ( )} {meetingStatus} {detailedMeeting ? ( {detailedMeeting.topic} ) : null} ); }; export default UpperBody;