diff --git a/apps/web/ce/components/workspace/sidebar/extended-sidebar-item.tsx b/apps/web/ce/components/workspace/sidebar/extended-sidebar-item.tsx index e9ae670a870..648ed750e78 100644 --- a/apps/web/ce/components/workspace/sidebar/extended-sidebar-item.tsx +++ b/apps/web/ce/components/workspace/sidebar/extended-sidebar-item.tsx @@ -17,9 +17,8 @@ import { cn } from "@plane/utils"; import { SidebarNavItem } from "@/components/sidebar/sidebar-navigation"; // hooks import { useAppTheme } from "@/hooks/store/use-app-theme"; -import { useWorkspace } from "@/hooks/store/use-workspace"; import { useUser, useUserPermissions } from "@/hooks/store/user"; -// plane web imports +import { useWorkspaceNavigationPreferences } from "@/hooks/use-navigation-preferences"; // local imports import { UpgradeBadge } from "../upgrade-badge"; import { getSidebarNavigationItemIcon } from "./helper"; @@ -50,33 +49,16 @@ export const ExtendedSidebarItem = observer(function ExtendedSidebarItem(props: const pathname = usePathname(); const { workspaceSlug } = useParams(); // store hooks - const { getNavigationPreferences, updateSidebarPreference } = useWorkspace(); const { toggleExtendedSidebar } = useAppTheme(); const { data } = useUser(); const { allowPermissions } = useUserPermissions(); + const { preferences: workspacePreferences, toggleWorkspaceItem } = useWorkspaceNavigationPreferences(); // derived values - const sidebarPreference = getNavigationPreferences(workspaceSlug.toString()); - const isPinned = sidebarPreference?.[item.key]?.is_pinned; + const isPinned = workspacePreferences.items[item.key]?.is_pinned ?? false; const handleLinkClick = () => toggleExtendedSidebar(true); - const itemHref = - item.key === "your_work" - ? `/${workspaceSlug.toString()}${item.href}${data?.id}` - : `/${workspaceSlug.toString()}${item.href}`; - const isActive = itemHref === pathname; - - const pinNavigationItem = (workspaceSlug: string, key: string) => { - updateSidebarPreference(workspaceSlug, key, { is_pinned: true }); - }; - - const unPinNavigationItem = (workspaceSlug: string, key: string) => { - updateSidebarPreference(workspaceSlug, key, { is_pinned: false }); - }; - - const icon = getSidebarNavigationItemIcon(item.key); - useEffect(() => { const element = navigationIemRef.current; const dragHandleElement = dragHandleRef.current; @@ -146,6 +128,22 @@ export const ExtendedSidebarItem = observer(function ExtendedSidebarItem(props: ); }, [isLastChild, handleOnNavigationItemDrop, disableDrag, disableDrop, item.key]); + const itemHref = + item.key === "your_work" + ? `/${workspaceSlug.toString()}${item.href}${data?.id}` + : `/${workspaceSlug.toString()}${item.href}`; + const isActive = itemHref === pathname; + + const pinNavigationItem = (key: string) => { + toggleWorkspaceItem(key, true); + }; + + const unPinNavigationItem = (key: string) => { + toggleWorkspaceItem(key, false); + }; + + const icon = getSidebarNavigationItemIcon(item.key); + if (!allowPermissions(item.access as any, EUserPermissionsLevel.WORKSPACE, workspaceSlug.toString())) { return null; } @@ -153,7 +151,9 @@ export const ExtendedSidebarItem = observer(function ExtendedSidebarItem(props: return (