From 754251ab2600c87e75ca224a385a2e0347b2c395 Mon Sep 17 00:00:00 2001
From: "Yumiko (Yumi) Chow" <75456756+yumi520@users.noreply.github.com>
Date: Tue, 24 Mar 2026 16:12:53 -0400
Subject: [PATCH 1/2] changed user menu design to reflect new designs
---
.../main-page/users/components/UserMenu.tsx | 93 ++++++++++---------
1 file changed, 50 insertions(+), 43 deletions(-)
diff --git a/frontend/src/main-page/users/components/UserMenu.tsx b/frontend/src/main-page/users/components/UserMenu.tsx
index b613fbd..6da48b0 100644
--- a/frontend/src/main-page/users/components/UserMenu.tsx
+++ b/frontend/src/main-page/users/components/UserMenu.tsx
@@ -1,11 +1,9 @@
-import { Menu } from "@chakra-ui/react";
import { UserStatus } from "../../../../../middle-layer/types/UserStatus";
-import { faUserPen, faTrash } from "@fortawesome/free-solid-svg-icons";
+import { faUserPen, faTrash, faTrashCan, faTrashAlt } from "@fortawesome/free-solid-svg-icons";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import ActionConfirmation from "../../../components/ActionConfirmation";
import { useState } from "react";
import { User } from "../../../../../middle-layer/types/User";
-import Button from "../../../components/Button";
-import { FaEllipsis } from "react-icons/fa6";
import { changeUserGroup, deleteUser } from "../UserActions";
interface UserMenuProps {
@@ -26,9 +24,9 @@ const UserMenu = ({ user }: UserMenuProps) => {
user.position === UserStatus.Admin ? "Employee" : "Admin"
}`}
subtitle="Are you sure you want to change to"
- boldSubtitle={user.position === UserStatus.Admin ? "employee" : "admin"}
+ boldSubtitle={user.position === UserStatus.Admin ? "Employee" : "Admin"}
warningMessage={`By changing to ${
- user.position === UserStatus.Admin ? "employee" : "admin"
+ user.position === UserStatus.Admin ? "Employee" : "Admin"
}, they will ${
user.position === UserStatus.Admin
? "lose access to sensitive data."
@@ -44,43 +42,52 @@ const UserMenu = ({ user }: UserMenuProps) => {
boldSubtitle={user.email}
warningMessage="By deleting this user, they won't be available in the system anymore."
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ setIsChangeGroupModalOpen(true)}
+ disabled={isChangeGroupModalOpen || isDeleteUserModalOpen}
+ aria-label={
+ user.position === UserStatus.Admin
+ ? "Assign Employee"
+ : "Assign Admin"
+ }
+ className="group flex h-8 items-center gap-2 overflow-hidden rounded-sm border-0 bg-grey-100 px-2 outline-none shadow-none transition-all hover:border-0 hover:bg-grey-200 hover:shadow-none focus:border-0 focus:outline-none focus:shadow-none disabled:cursor-not-allowed disabled:opacity-50"
+ >
+
+
+ {user.position === UserStatus.Admin
+ ? "Assign Employee"
+ : "Assign Admin"}
+
+
+
+
+
+ setIsDeleteUserModalOpen(true)}
+ disabled={isChangeGroupModalOpen || isDeleteUserModalOpen}
+ aria-label="Delete user"
+ className="h-8 w-8 rounded-md border-0 bg-grey-100 text-red-dark outline-none shadow-none transition-colors hover:border-0 hover:bg-grey-200 hover:shadow-none focus:border-0 focus:outline-none focus:shadow-none disabled:cursor-not-allowed disabled:opacity-50"
+ >
+
+
+
);
From 0321759c3df39a9b781fbf9a53c8f5ee333aded2 Mon Sep 17 00:00:00 2001
From: Yumiko Chow <75456756+yumi520@users.noreply.github.com>
Date: Tue, 24 Mar 2026 16:17:55 -0400
Subject: [PATCH 2/2] Remove unused icon imports from UserMenu
---
frontend/src/main-page/users/components/UserMenu.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/src/main-page/users/components/UserMenu.tsx b/frontend/src/main-page/users/components/UserMenu.tsx
index 6da48b0..b99090c 100644
--- a/frontend/src/main-page/users/components/UserMenu.tsx
+++ b/frontend/src/main-page/users/components/UserMenu.tsx
@@ -1,5 +1,5 @@
import { UserStatus } from "../../../../../middle-layer/types/UserStatus";
-import { faUserPen, faTrash, faTrashCan, faTrashAlt } from "@fortawesome/free-solid-svg-icons";
+import { faUserPen, faTrashCan } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import ActionConfirmation from "../../../components/ActionConfirmation";
import { useState } from "react";