From 5683d94d0c6f9d4c48e63afbf6c859d901136a24 Mon Sep 17 00:00:00 2001 From: gakshita Date: Tue, 11 Feb 2025 16:09:27 +0530 Subject: [PATCH 1/2] fix: Handled workspace switcher closing on click --- .../workspace/sidebar/dropdown-item.tsx | 5 +++- .../components/workspace/sidebar/dropdown.tsx | 25 +++++-------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/web/core/components/workspace/sidebar/dropdown-item.tsx b/web/core/components/workspace/sidebar/dropdown-item.tsx index 183a8fdb396..7638b657276 100644 --- a/web/core/components/workspace/sidebar/dropdown-item.tsx +++ b/web/core/components/workspace/sidebar/dropdown-item.tsx @@ -19,9 +19,10 @@ type TProps = { activeWorkspace: IWorkspace | null; handleItemClick: () => void; handleWorkspaceNavigation: (workspace: IWorkspace) => void; + handleClose: () => void; }; const SidebarDropdownItem = observer((props: TProps) => { - const { workspace, activeWorkspace, handleItemClick, handleWorkspaceNavigation } = props; + const { workspace, activeWorkspace, handleItemClick, handleWorkspaceNavigation, handleClose } = props; // router const { workspaceSlug } = useParams(); // hooks @@ -89,6 +90,7 @@ const SidebarDropdownItem = observer((props: TProps) => {
@@ -96,6 +98,7 @@ const SidebarDropdownItem = observer((props: TProps) => { diff --git a/web/core/components/workspace/sidebar/dropdown.tsx b/web/core/components/workspace/sidebar/dropdown.tsx index 8d131594840..ac9acf42e5b 100644 --- a/web/core/components/workspace/sidebar/dropdown.tsx +++ b/web/core/components/workspace/sidebar/dropdown.tsx @@ -46,20 +46,10 @@ export const SidebarDropdown = observer(() => { // popper-js init const { styles, attributes } = usePopper(referenceElement, popperElement, { placement: "right", - modifiers: [ - { - name: "preventOverflow", - options: { - padding: 12, - }, - }, - ], + modifiers: [{ name: "preventOverflow", options: { padding: 12 } }], }); - const handleWorkspaceNavigation = (workspace: IWorkspace) => - updateUserProfile({ - last_workspace_id: workspace?.id, - }); + const handleWorkspaceNavigation = (workspace: IWorkspace) => updateUserProfile({ last_workspace_id: workspace?.id }); const handleSignOut = async () => { await signOut().catch(() => @@ -86,14 +76,12 @@ export const SidebarDropdown = observer(() => { "flex-grow-0 justify-center": sidebarCollapsed, })} > - {({ open }) => ( + {({ open, close }) => ( <>
@@ -108,9 +96,7 @@ export const SidebarDropdown = observer(() => {
From 777992a880c846774df2d9b91a746cfb37d29415 Mon Sep 17 00:00:00 2001 From: gakshita Date: Wed, 19 Feb 2025 15:08:13 +0530 Subject: [PATCH 2/2] fix: permissions for labels dnd + issue state creation --- web/core/components/labels/label-drag-n-drop-HOC.tsx | 7 ++++++- web/core/components/project-states/group-item.tsx | 10 +++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/web/core/components/labels/label-drag-n-drop-HOC.tsx b/web/core/components/labels/label-drag-n-drop-HOC.tsx index 57e1b3a14c6..8cc87d4c6d5 100644 --- a/web/core/components/labels/label-drag-n-drop-HOC.tsx +++ b/web/core/components/labels/label-drag-n-drop-HOC.tsx @@ -9,10 +9,12 @@ import { attachInstruction } from "@atlaskit/pragmatic-drag-and-drop-hitbox/tree import { observer } from "mobx-react"; import { createRoot } from "react-dom/client"; // types +import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { IIssueLabel, InstructionType } from "@plane/types"; // ui import { DropIndicator } from "@plane/ui"; // components +import { useUserPermissions } from "@/hooks/store"; import { LabelName } from "./label-block/label-name"; import { TargetData, getCanDrop, getInstructionFromPayload } from "./label-utils"; @@ -58,11 +60,14 @@ export const LabelDndHOC = observer((props: Props) => { const labelRef = useRef(null); const dragHandleRef = useRef(null); + const { allowPermissions } = useUserPermissions(); + const isEditable = allowPermissions([EUserPermissions.ADMIN], EUserPermissionsLevel.PROJECT); + useEffect(() => { const element = labelRef.current; const dragHandleElement = dragHandleRef.current; - if (!element) return; + if (!element || !isEditable) return; return combine( draggable({ diff --git a/web/core/components/project-states/group-item.tsx b/web/core/components/project-states/group-item.tsx index 6b766dacf71..fe9fcad152d 100644 --- a/web/core/components/project-states/group-item.tsx +++ b/web/core/components/project-states/group-item.tsx @@ -75,12 +75,16 @@ export const GroupItem: FC = observer((props) => {
{groupKey}
-
!createState && setCreateState(true)} + disabled={!isEditable} > -
+ {shouldShowEmptyState && (