Feat: Hydrate shell from app state
This commit is contained in:
@@ -2,16 +2,15 @@
|
||||
|
||||
import { For, Show, createMemo, createSignal, type JSX } from "solid-js";
|
||||
import { ChevronLeft, ChevronRight } from "../../../lib/icons";
|
||||
import { useAppShellData } from "../data/app-shell.context";
|
||||
import { ProjectSelector } from "../ProjectSelector/ProjectSelector";
|
||||
import {
|
||||
activeProject,
|
||||
createWorkspaceStaticTarget,
|
||||
createWorkspaceSurfaceTarget,
|
||||
createWorkspaceTreeTarget,
|
||||
getWorkspaceNodeIcon,
|
||||
workspaceSidebarHeaderActions,
|
||||
workspaceStaticItems,
|
||||
workspaceTree,
|
||||
type WorkspaceContextMenuAction,
|
||||
type WorkspaceContextMenuTarget,
|
||||
type WorkspaceStaticItem,
|
||||
@@ -142,11 +141,12 @@ const WorkspaceTreeBranch = (props: {
|
||||
);
|
||||
};
|
||||
|
||||
export const WorkspaceSidebar = (props: WorkspaceSidebarProps): JSX.Element => {
|
||||
export const WorkspaceSidebar = (props: WorkspaceSidebarProps): JSX.Element => {
|
||||
const appShellData = useAppShellData();
|
||||
const [isProjectDrawerOpen, setIsProjectDrawerOpen] = createSignal(false);
|
||||
const contextMenu = createWorkspaceContextMenuController();
|
||||
const railToggleLabel = (): string => (props.railCollapsed ? "Expand server rail" : "Collapse server rail");
|
||||
const sidebarContextMenuTarget = createWorkspaceSurfaceTarget(activeProject);
|
||||
const sidebarContextMenuTarget = createMemo(() => createWorkspaceSurfaceTarget(appShellData.activeProject()));
|
||||
const contextMenuTarget = createMemo(() => contextMenu.menuState()?.target ?? null);
|
||||
const contextMenuPosition = createMemo(() => {
|
||||
const state = contextMenu.menuState();
|
||||
@@ -174,7 +174,7 @@ const WorkspaceTreeBranch = (props: {
|
||||
data-ui="workspace-sidebar"
|
||||
data-collapsed={props.collapsed ? "true" : "false"}
|
||||
onContextMenu={(event): void => {
|
||||
contextMenu.openMenu(event, sidebarContextMenuTarget);
|
||||
contextMenu.openMenu(event, sidebarContextMenuTarget());
|
||||
}}
|
||||
>
|
||||
<div
|
||||
@@ -256,7 +256,7 @@ const WorkspaceTreeBranch = (props: {
|
||||
|
||||
<div data-slot="workspace-tree-root">
|
||||
<WorkspaceTreeBranch
|
||||
nodes={workspaceTree}
|
||||
nodes={appShellData.workspaceTree()}
|
||||
onOpenContextMenu={contextMenu.openMenu}
|
||||
onOpenContextMenuFromKeyboard={contextMenu.openMenuFromElement}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user