From 27b9eca6f0f0e544935f03dd7290a29c4f621f0c Mon Sep 17 00:00:00 2001 From: Tom Chapman Date: Mon, 11 Dec 2023 16:47:06 -0800 Subject: [PATCH] staff avatars --- .../myWorkplans/Card/CardFooter.tsx | 51 +++++++++++++++++-- .../myWorkplans/Card/RenderSurplus.tsx | 11 ++++ 2 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 epictrack-web/src/components/myWorkplans/Card/RenderSurplus.tsx diff --git a/epictrack-web/src/components/myWorkplans/Card/CardFooter.tsx b/epictrack-web/src/components/myWorkplans/Card/CardFooter.tsx index aef56606e..7b8a8555b 100644 --- a/epictrack-web/src/components/myWorkplans/Card/CardFooter.tsx +++ b/epictrack-web/src/components/myWorkplans/Card/CardFooter.tsx @@ -1,15 +1,21 @@ -import { Avatar, AvatarGroup, Button, Grid } from "@mui/material"; +import { Avatar, AvatarGroup, Box, Button, Grid } from "@mui/material"; import { Palette } from "../../../styles/theme"; import { ETCaption1, ETCaption2, ETParagraph } from "../../shared"; import Icons from "../../icons"; import { IconProps } from "../../icons/type"; import { CardProps } from "./type"; import { useNavigate } from "react-router-dom"; +import React from "react"; +import UserMenu from "../../shared/userMenu/UserMenu"; +import RenderSurplus from "./RenderSurplus"; const EyeIcon: React.FC = Icons["EyeIcon"]; const CardFooter = ({ workplan }: CardProps) => { const navigate = useNavigate(); + const [staffHover, setStaffHover] = React.useState(null); + const [userMenuAnchorEl, setUserMenuAnchorEl] = + React.useState(null); const team_lead = workplan.staff_info.find((staff: any) => { if (staff.role.name === "Team Lead") { return staff.staff.full_name; @@ -17,6 +23,19 @@ const CardFooter = ({ workplan }: CardProps) => { return false; }); + const handleCloseUserMenu = (event: React.MouseEvent) => { + setUserMenuAnchorEl(null); + setStaffHover(null); + }; + + const handleOpenUserMenu = ( + event: React.MouseEvent, + staff: any + ) => { + setStaffHover(staff); + setUserMenuAnchorEl(event.currentTarget); + }; + return ( { borderTop: `1px solid var(--neutral-background-dark, #DBDCDC)`, padding: "16px 32px", alignItems: "center", - height: "80px", + // height: "80px", }} > @@ -68,7 +87,13 @@ const CardFooter = ({ workplan }: CardProps) => { STAFF - + ( + + )} + > {workplan.staff_info.map((staff: any) => { return ( { width: "24px", height: "24px", }} + onMouseEnter={(event) => { + event.stopPropagation(); + event.preventDefault(); + handleOpenUserMenu(event, staff.staff); + }} + onMouseLeave={handleCloseUserMenu} > {`${staff.staff.first_name[0]}${staff.staff.last_name[0]}`} + ); })} diff --git a/epictrack-web/src/components/myWorkplans/Card/RenderSurplus.tsx b/epictrack-web/src/components/myWorkplans/Card/RenderSurplus.tsx new file mode 100644 index 000000000..1771bb488 --- /dev/null +++ b/epictrack-web/src/components/myWorkplans/Card/RenderSurplus.tsx @@ -0,0 +1,11 @@ +import { Box } from "@mui/material"; + +interface RenderSurplusProps { + renderSurplus: number; +} + +const RenderSurplus = ({ renderSurplus }: RenderSurplusProps) => { + return ...; +}; + +export default RenderSurplus;