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 (