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
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