Skip to content

pivotick v3.0.0


pivotick / ModeStore

Interface: ModeStore ​

Defined in: ui/ModeStore.ts:84

A tiny observable holding the mode-rail state. The rail, contextual tool panel and the settings flyouts subscribe to it; clicks / keybindings dispatch to it. Setters are idempotent — they only notify when the value actually changes — and every notification carries a fresh snapshot so a listener can't mutate the store's internal state.

The four built-in modes are always present. Modes registered through addRailMode are added with registerMode and hold state exactly like a built-in does.

subscribe fires on changes only; render initial state from getState first, then subscribe for updates.

Methods ​

armTool() ​

armTool(mode, tool): void

Defined in: ui/ModeStore.ts:193

Arm a tool in a pointer-mode (the rail slot reflects it). Idempotent.

Parameters ​

mode ​

string

tool ​

string | null

Returns ​

void


dispose() ​

dispose(): void

Defined in: ui/ModeStore.ts:218

Drop every subscriber (called on UI teardown).

Returns ​

void


getArmedTool() ​

getArmedTool(mode): string | null

Defined in: ui/ModeStore.ts:162

The armed tool for a pointer-mode ('pointer'/null = default).

Parameters ​

mode ​

string

Returns ​

string | null


getDefaultTool() ​

getDefaultTool(mode): string | null

Defined in: ui/ModeStore.ts:118

The tool a mode rests on when nothing special is armed.

Parameters ​

mode ​

string

Returns ​

string | null


getMode() ​

getMode(): string

Defined in: ui/ModeStore.ts:103

Returns ​

string


getState() ​

getState(): Readonly<ModeState>

Defined in: ui/ModeStore.ts:172

A copy of the current state (safe to read; mutations don't leak back).

Returns ​

Readonly<ModeState>


hasMode() ​

hasMode(mode): boolean

Defined in: ui/ModeStore.ts:113

Whether a mode is currently registered (the four built-ins always are).

Parameters ​

mode ​

string

Returns ​

boolean


isFlyoutActive() ​

isFlyoutActive(mode): boolean

Defined in: ui/ModeStore.ts:147

Whether a flyout is open (i.e. its mode is the active one).

Parameters ​

mode ​

string

Returns ​

boolean


isPanelOpen() ​

isPanelOpen(mode): boolean

Defined in: ui/ModeStore.ts:167

Whether a pointer-mode's tool panel is currently expanded.

Parameters ​

mode ​

string

Returns ​

boolean


isPointerMode() ​

isPointerMode(mode): boolean

Defined in: ui/ModeStore.ts:108

Whether a mode owns the tool panel. Unknown modes are not pointer-modes.

Parameters ​

mode ​

string

Returns ​

boolean


isViewActive() ​

isViewActive(): boolean

Defined in: ui/ModeStore.ts:152

Returns ​

boolean

Deprecated ​

use isFlyoutActive('view') — the rail has more than one flyout now.


registerMode() ​

registerMode(mode, kind, defaultTool, panelOpen): void

Defined in: ui/ModeStore.ts:127

Add a mode's state to the store. Called by the rail-mode registry; the four built-ins are already present. Re-registering an id overwrites its record but keeps whatever tool/panel state it already had.

Parameters ​

mode ​

string

kind ​

RailModeKind

defaultTool ​

string | null

panelOpen ​

boolean = true

Returns ​

void


setMode() ​

setMode(mode): void

Defined in: ui/ModeStore.ts:180

Parameters ​

mode ​

string

Returns ​

void


setPanelOpen() ​

setPanelOpen(mode, open): void

Defined in: ui/ModeStore.ts:200

Expand / collapse a pointer-mode's tool panel. Idempotent.

Parameters ​

mode ​

string

open ​

boolean

Returns ​

void


subscribe() ​

subscribe(listener): () => void

Defined in: ui/ModeStore.ts:212

Subscribe to state changes. Returns an unsubscribe fn (pass to UIComponent.track).

Parameters ​

listener ​

ModeListener

Returns ​

(): void

Returns ​

void


toggleFlyout() ​

toggleFlyout(mode): void

Defined in: ui/ModeStore.ts:188

Open a flyout mode, or close it back to the last pointer-mode.

Parameters ​

mode ​

string

Returns ​

void


toggleToolPanel() ​

toggleToolPanel(mode): void

Defined in: ui/ModeStore.ts:207

Toggle a pointer-mode's tool panel open/closed.

Parameters ​

mode ​

string

Returns ​

void


toggleView() ​

toggleView(): void

Defined in: ui/ModeStore.ts:157

Returns ​

void

Deprecated ​

use toggleFlyout('view') — the rail has more than one flyout now.


unregisterMode() ​

unregisterMode(mode): void

Defined in: ui/ModeStore.ts:138

Drop a mode's state. The caller is responsible for moving off it first — the store will not decide what to activate instead.

Parameters ​

mode ​

string

Returns ​

void