/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import React, { useEffect } from "react"; import { observer } from "mobx-react"; // plane imports import { EXTENDED_SIDEBAR_WIDTH, SIDEBAR_WIDTH } from "@plane/constants"; import { useLocalStorage } from "@plane/hooks"; import { cn } from "@plane/utils"; // hooks import { useAppTheme } from "@/hooks/store/use-app-theme"; // hooks import useExtendedSidebarOutsideClickDetector from "@/hooks/use-extended-sidebar-overview-outside-click"; type Props = { className?: string; children: React.ReactNode; extendedSidebarRef: React.RefObject; isExtendedSidebarOpened: boolean; handleClose: () => void; excludedElementId: string; }; export const ExtendedSidebarWrapper = observer(function ExtendedSidebarWrapper(props: 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}
); });