- Extract navigation state and logic into navigation-store.ts for testability and separation of concerns - NavigationContext now only wraps the store as a Solid provider - Remove SIDEBAR_PANE from the model; depth-tabs have a single focusable content pane (center/current column) - Split LayerGraph and page imports into layer-graph.ts so the navigation utils stay free of JSX (unit-testable) - Update Shell keybind dispatch: remove sidebar pane handling, simplify swipe to fixed-pane tabs only, clarify depth-tab h/l - Add nav-model.test.ts covering depth stack, tab/pane focus, and selection semantics
23 lines
928 B
TypeScript
23 lines
928 B
TypeScript
/**
|
|
* NavigationContext — Solid provider wrapper around the pure nav store in
|
|
* `./navigation-store`. Re-exports the nav model (`createNavigation`, the
|
|
* enums/types, `DEPTH_CENTER_PANE`, etc.) so the rest of the app keeps
|
|
* importing everything from `@/context/NavigationContext`, and binds the
|
|
* store into a Solid context (`useNavigation` / `NavigationProvider`).
|
|
*
|
|
* See `./navigation-store` for the model documentation (parent | current |
|
|
* preview, depth-stack vs fixed-pane tabs, no sidebar pane).
|
|
*/
|
|
import { createSimpleContext } from "./helper";
|
|
import { createNavigation } from "./navigation-store";
|
|
|
|
// Re-export the entire nav model surface so existing imports from
|
|
// `@/context/NavigationContext` keep resolving.
|
|
export * from "./navigation-store";
|
|
|
|
export const { use: useNavigation, provider: NavigationProvider } =
|
|
createSimpleContext({
|
|
name: "Navigation",
|
|
init: () => createNavigation(),
|
|
});
|