From 0b05c669a09eca637c9a2910de13001729850832 Mon Sep 17 00:00:00 2001 From: shatfield4 Date: Tue, 5 Dec 2023 10:33:24 -0800 Subject: [PATCH 1/3] gear icon appear on hover for workspace --- .../Sidebar/ActiveWorkspaces/index.jsx | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx b/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx index 4e423a6dd91..b1f39bcb9a1 100644 --- a/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx +++ b/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx @@ -14,11 +14,11 @@ import useUser from "../../../hooks/useUser"; export default function ActiveWorkspaces() { const { slug } = useParams(); const [loading, setLoading] = useState(true); - const [settingHover, setSettingHover] = useState(false); + const [settingHover, setSettingHover] = useState({}); const [workspaces, setWorkspaces] = useState([]); const [selectedWs, setSelectedWs] = useState(null); + const [hoverStates, setHoverStates] = useState({}); const { showing, showModal, hideModal } = useManageWorkspaceModal(); - const { user } = useUser(); useEffect(() => { async function getWorkspaces() { @@ -29,6 +29,22 @@ export default function ActiveWorkspaces() { getWorkspaces(); }, []); + const handleMouseEnter = (workspaceId) => { + setHoverStates((prev) => ({ ...prev, [workspaceId]: true })); + }; + + const handleMouseLeave = (workspaceId) => { + setHoverStates((prev) => ({ ...prev, [workspaceId]: false })); + }; + + const handleGearMouseEnter = (workspaceId) => { + setSettingHover((prev) => ({ ...prev, [workspaceId]: true })); + }; + + const handleGearMouseLeave = (workspaceId) => { + setSettingHover((prev) => ({ ...prev, [workspaceId]: false })); + }; + if (loading) { return ( <> @@ -48,10 +64,14 @@ export default function ActiveWorkspaces() { <> {workspaces.map((workspace) => { const isActive = workspace.slug === slug; + const isHovered = hoverStates[workspace.id]; + const isGearHovered = settingHover[workspace.id]; return (
handleMouseEnter(workspace.id)} + onMouseLeave={() => handleMouseLeave(workspace.id)} >
From 6f6f6e262685e82db69935dc85fd99b8d35ead1f Mon Sep 17 00:00:00 2001 From: shatfield4 Date: Tue, 5 Dec 2023 14:37:30 -0800 Subject: [PATCH 2/3] put back user role check for default --- frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx b/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx index b1f39bcb9a1..ed73edcb51d 100644 --- a/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx +++ b/frontend/src/components/Sidebar/ActiveWorkspaces/index.jsx @@ -19,6 +19,7 @@ export default function ActiveWorkspaces() { const [selectedWs, setSelectedWs] = useState(null); const [hoverStates, setHoverStates] = useState({}); const { showing, showModal, hideModal } = useManageWorkspaceModal(); + const { user } = useUser(); useEffect(() => { async function getWorkspaces() { @@ -113,7 +114,7 @@ export default function ActiveWorkspaces() { >