diff --git a/packages/twenty-front/src/modules/navigation/hooks/useNavigationDrawerExpanded.ts b/packages/twenty-front/src/modules/navigation/hooks/useNavigationDrawerExpanded.ts new file mode 100644 index 0000000000..0253b65ed1 --- /dev/null +++ b/packages/twenty-front/src/modules/navigation/hooks/useNavigationDrawerExpanded.ts @@ -0,0 +1,11 @@ +import { useIsSettingsDrawer } from '@/navigation/hooks/useIsSettingsDrawer'; +import { isNavigationDrawerExpandedState } from '@/ui/navigation/states/isNavigationDrawerExpanded'; +import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue'; + +export const useNavigationDrawerExpanded = () => { + const isSettingsDrawer = useIsSettingsDrawer(); + const isNavigationDrawerExpanded = useAtomStateValue( + isNavigationDrawerExpandedState, + ); + return isSettingsDrawer || isNavigationDrawerExpanded; +}; diff --git a/packages/twenty-front/src/modules/ui/layout/page/components/PageHeader.tsx b/packages/twenty-front/src/modules/ui/layout/page/components/PageHeader.tsx index c1aa744f47..79db033f80 100644 --- a/packages/twenty-front/src/modules/ui/layout/page/components/PageHeader.tsx +++ b/packages/twenty-front/src/modules/ui/layout/page/components/PageHeader.tsx @@ -3,11 +3,10 @@ import { type ReactNode, useContext } from 'react'; import { NavigationDrawerCollapseButton } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerCollapseButton'; +import { useNavigationDrawerExpanded } from '@/navigation/hooks/useNavigationDrawerExpanded'; import { PAGE_ACTION_CONTAINER_CLICK_OUTSIDE_ID } from '@/ui/layout/page/constants/PageActionContainerClickOutsideId'; import { PAGE_BAR_MIN_HEIGHT } from '@/ui/layout/page/constants/PageBarMinHeight'; -import { isNavigationDrawerExpandedState } from '@/ui/navigation/states/isNavigationDrawerExpanded'; import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile'; -import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue'; import { AnimatePresence } from 'framer-motion'; import { isDefined } from 'twenty-shared/utils'; import { @@ -106,9 +105,7 @@ export const PageHeader = ({ }: PageHeaderProps) => { const isMobile = useIsMobile(); const { theme } = useContext(ThemeContext); - const isNavigationDrawerExpanded = useAtomStateValue( - isNavigationDrawerExpandedState, - ); + const isNavigationDrawerExpanded = useNavigationDrawerExpanded(); return ( diff --git a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawer.tsx b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawer.tsx index d05e350dc4..2327bb9f67 100644 --- a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawer.tsx +++ b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawer.tsx @@ -1,6 +1,7 @@ import { styled } from '@linaria/react'; import { type ReactNode, useState } from 'react'; +import { useNavigationDrawerExpanded } from '@/navigation/hooks/useNavigationDrawerExpanded'; import { useIsSettingsDrawer } from '@/navigation/hooks/useIsSettingsDrawer'; import { tableWidthResizeIsActiveState } from '@/object-record/record-table/states/tableWidthResizeIsActivedState'; import { ResizablePanelEdge } from '@/ui/layout/resizable-panel/components/ResizablePanelEdge'; @@ -83,6 +84,7 @@ export const NavigationDrawer = ({ const [isResizing, setIsResizing] = useState(false); const isMobile = useIsMobile(); const isSettingsDrawer = useIsSettingsDrawer(); + const isExpanded = useNavigationDrawerExpanded(); const [isNavigationDrawerExpanded, setIsNavigationDrawerExpanded] = useAtomState(isNavigationDrawerExpandedState); @@ -114,8 +116,6 @@ export const NavigationDrawer = ({ setTableWidthResizeIsActive(false); }; - const isExpanded = isSettingsDrawer || isNavigationDrawerExpanded; - return ( <> diff --git a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx index 9c8a3b9f2a..7a728bb0f9 100644 --- a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx +++ b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx @@ -1,4 +1,4 @@ -import { useIsSettingsPage } from '@/navigation/hooks/useIsSettingsPage'; +import { useNavigationDrawerExpanded } from '@/navigation/hooks/useNavigationDrawerExpanded'; import { NAVIGATION_DRAWER_COLLAPSED_WIDTH } from '@/ui/layout/resizable-panel/constants/NavigationDrawerCollapsedWidth'; import { NavigationDrawerAnimatedCollapseWrapper } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerAnimatedCollapseWrapper'; import { NavigationDrawerItemBreadcrumb } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerItemBreadcrumb'; @@ -273,7 +273,7 @@ export const NavigationDrawerItem = ({ }: NavigationDrawerItemProps) => { const { theme } = useContext(ThemeContext); const isMobile = useIsMobile(); - const isSettingsPage = useIsSettingsPage(); + const isExpanded = useNavigationDrawerExpanded(); const [isNavigationDrawerExpanded, setIsNavigationDrawerExpanded] = useAtomState(isNavigationDrawerExpandedState); @@ -336,7 +336,7 @@ export const NavigationDrawerItem = ({ isSoon={isSoon} variant={variant} indentationLevel={indentationLevel} - isNavigationDrawerExpanded={isNavigationDrawerExpanded} + isNavigationDrawerExpanded={isExpanded} isDragging={isDragging} hasRightOptions={isDefined(rightOptions)} isSelectedInEditMode={isSelectedInEditMode} @@ -369,9 +369,7 @@ export const NavigationDrawerItem = ({ size={theme.icon.size.md} stroke={theme.icon.stroke.md} color={ - showBreadcrumb && - !isSettingsPage && - !isNavigationDrawerExpanded + showBreadcrumb && !isExpanded ? theme.font.color.light : 'currentColor' } @@ -448,7 +446,7 @@ export const NavigationDrawerItem = ({ - {!isNavigationDrawerExpanded && !isMobile && ( + {!isExpanded && !isMobile && (