diff --git a/apps/designer/app/designer/designer.tsx b/apps/designer/app/designer/designer.tsx index 9a4f599a12..50c009c714 100644 --- a/apps/designer/app/designer/designer.tsx +++ b/apps/designer/app/designer/designer.tsx @@ -13,7 +13,6 @@ import { Inspector } from "./features/inspector"; import { useAssets, useHoveredInstanceData, - usePages, useSelectedInstanceData, useSyncStatus, } from "./shared/nano-states"; @@ -78,13 +77,6 @@ const useSetAssets = (assets?: Array) => { }, [assets, setAssets]); }; -const useSetPages = (pages: Pages, currentPageId: string) => { - const [, setPages] = usePages(); - useEffect(() => { - setPages({ pages, currentPageId }); - }, [pages, setPages, currentPageId]); -}; - const useNavigatorLayout = () => { // We need to render the detached state only once the setting was actually loaded from local storage. // Otherwise we may show the detached state because its the default and then hide it immediately. @@ -264,7 +256,6 @@ export const Designer = ({ config, project, pages, pageId }: DesignerProps) => { useSubscribeHoveredInstanceData(); useSubscribeBreakpoints(); useSetAssets(project.assets); - useSetPages(pages, pageId); const [publish, publishRef] = usePublish(); const [isPreviewMode] = useIsPreviewMode(); usePublishShortcuts(publish); @@ -318,7 +309,13 @@ export const Designer = ({ config, project, pages, pageId }: DesignerProps) => { - + void; publish: Publish; + project: Project; + pages: Pages; + currentPageId: string; + config: Config; }; type PagesTreeNode = @@ -64,22 +68,23 @@ const staticTreeProps = { }, }; -const TabBody = ({ +export const TabContent = ({ + onSetActiveTab, + project, pages, currentPageId, -}: { - pages: Pages; - currentPageId: string; -}) => { + config, +}: TabContentProps) => { const pagesTree = useMemo(() => pages && toTreeData(pages), [pages]); const navigate = useNavigate(); const handleSelect = (pageId: string) => { - navigate(`/todo/${pageId}`); + navigate(`${config.designerPath}/${project.id}?pageId=${pageId}`); }; return ( <> +
onSetActiveTab("none")} /> { - const [pagesData] = usePages(); - return ( - <> -
onSetActiveTab("none")} /> - {pagesData && ( - - )} - - ); -}; - // @todo: proper icon export const icon = ; diff --git a/apps/designer/app/designer/features/sidebar-left/sidebar-left.tsx b/apps/designer/app/designer/features/sidebar-left/sidebar-left.tsx index 201355ad6b..e8e4208012 100644 --- a/apps/designer/app/designer/features/sidebar-left/sidebar-left.tsx +++ b/apps/designer/app/designer/features/sidebar-left/sidebar-left.tsx @@ -13,14 +13,26 @@ import { isFeatureEnabled } from "~/shared/feature-flags"; import { useClientSettings } from "~/designer/shared/client-settings"; import { PANEL_WIDTH } from "~/designer/shared/constants"; import { Flex } from "@webstudio-is/design-system"; +import { type Project, type Pages } from "@webstudio-is/project"; +import { Config } from "~/config"; const none = { TabContent: () => null }; type SidebarLeftProps = { publish: Publish; + project: Project; + pages: Pages; + currentPageId: string; + config: Config; }; -export const SidebarLeft = ({ publish }: SidebarLeftProps) => { +export const SidebarLeft = ({ + publish, + project, + pages, + currentPageId, + config, +}: SidebarLeftProps) => { const [dragAndDropState] = useDragAndDropState(); const [activeTab, setActiveTab] = useState("none"); const { TabContent } = activeTab === "none" ? none : panels[activeTab]; @@ -78,7 +90,14 @@ export const SidebarLeft = ({ publish }: SidebarLeftProps) => { overflow: "auto", }} > - + diff --git a/apps/designer/app/designer/shared/nano-states/index.ts b/apps/designer/app/designer/shared/nano-states/index.ts index b4aefb35ec..667f42f760 100644 --- a/apps/designer/app/designer/shared/nano-states/index.ts +++ b/apps/designer/app/designer/shared/nano-states/index.ts @@ -6,7 +6,6 @@ import { } from "~/shared/canvas-components"; import { type SyncStatus } from "~/shared/sync"; import { Asset } from "@webstudio-is/asset-uploader"; -import { type Pages } from "@webstudio-is/project"; const selectedInstanceDataContainer = createValueContainer< SelectedInstanceData | undefined @@ -50,8 +49,3 @@ export const useSelectionRect = () => useValue(selectionRectContainer); const assetsContainer = createValueContainer>([]); export const useAssets = () => useValue(assetsContainer); - -const pagesContainer = createValueContainer< - { pages: Pages; currentPageId: string } | undefined ->(); -export const usePages = () => useValue(pagesContainer);