From 2980836015622efa63c133add27ca3c7f6978de0 Mon Sep 17 00:00:00 2001
From: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com>
Date: Fri, 28 Nov 2025 16:54:53 +0530
Subject: [PATCH] [WEB-5527] fix: extended sidebar (#8197)
---
.../(projects)/extended-project-sidebar.tsx | 13 ++++-----
.../(projects)/extended-sidebar-wrapper.tsx | 27 +++++++++++++------
.../(projects)/extended-sidebar.tsx | 4 +--
3 files changed, 28 insertions(+), 16 deletions(-)
diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx
index 2418d1c3a..e1532ac2b 100644
--- a/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx
+++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx
@@ -1,4 +1,4 @@
-import React, { useRef, useState } from "react";
+import { useCallback, useRef, useState } from "react";
import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// plane imports
@@ -76,7 +76,7 @@ export const ExtendedProjectSidebar = observer(function ExtendedProjectSidebar()
EUserPermissionsLevel.WORKSPACE
);
- const handleClose = () => toggleExtendedProjectSidebar(false);
+ const handleClose = useCallback(() => toggleExtendedProjectSidebar(false), [toggleExtendedProjectSidebar]);
const handleCopyText = (projectId: string) => {
copyUrlToClipboard(`${workspaceSlug}/projects/${projectId}/issues`).then(() => {
@@ -102,8 +102,9 @@ export const ExtendedProjectSidebar = observer(function ExtendedProjectSidebar()
extendedSidebarRef={extendedProjectSidebarRef}
handleClose={handleClose}
excludedElementId="extended-project-sidebar-toggle"
+ className="px-0"
>
-
+
Projects
{isAuthorizedUser && (
@@ -111,7 +112,7 @@ export const ExtendedProjectSidebar = observer(function ExtendedProjectSidebar()
{filteredProjects.length === 0 ? (
-
+
) : (
-
+
{filteredProjects.map((projectId, index) => (
;
isExtendedSidebarOpened: boolean;
@@ -17,26 +19,35 @@ type Props = {
};
export const ExtendedSidebarWrapper = observer(function ExtendedSidebarWrapper(props: Props) {
- const { children, extendedSidebarRef, isExtendedSidebarOpened, handleClose, excludedElementId } = props;
+ const { className, children, extendedSidebarRef, isExtendedSidebarOpened, handleClose, excludedElementId } = props;
// store hooks
+ const { sidebarCollapsed } = useAppTheme();
+ // local storage
const { storedValue } = useLocalStorage("sidebarWidth", SIDEBAR_WIDTH);
useExtendedSidebarOutsideClickDetector(extendedSidebarRef, handleClose, excludedElementId);
+ useEffect(() => {
+ if (sidebarCollapsed) {
+ handleClose();
+ }
+ }, [sidebarCollapsed, handleClose]);
+
return (
{children}
diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-sidebar.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-sidebar.tsx
index f07876364..4c51edcb1 100644
--- a/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-sidebar.tsx
+++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-sidebar.tsx
@@ -1,4 +1,4 @@
-import React, { useMemo, useRef } from "react";
+import { useCallback, useMemo, useRef } from "react";
import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// plane imports
@@ -107,7 +107,7 @@ export const ExtendedAppSidebar = observer(function ExtendedAppSidebar() {
if (updatedSortOrder != undefined) updateWorkspaceItemSortOrder(sourceId, updatedSortOrder);
};
- const handleClose = () => toggleExtendedSidebar(false);
+ const handleClose = useCallback(() => toggleExtendedSidebar(false), [toggleExtendedSidebar]);
return (