Abstract Class: MenuViewService<K>
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:18
A service to manage menu views.
Type Parameters
Type Parameter | Default type |
---|---|
K | Record <string , unknown > |
Constructors
Constructor
new MenuViewService<
K
>():MenuViewService
<K
>
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:41
Ctor
Returns
MenuViewService
<K
>
Properties
activeView
readonly
activeView:Subscribable
<null
|GuiDialog
<GuiDialogProps
>>
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:28
The currently active view.
activeViewKey
readonly
activeViewKey:Subscribable
<""
|string
& keyofK
>
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:26
The key of the currently active view.
guiEventMap
protected
readonly
guiEventMap:Map
<string
,GuiHEvent
>
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:31
override in child class
interactionTimeoutId
protected
interactionTimeoutId:null
|number
=null
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:34
Tracks the current timeout timer, used for closing the menu after 10 seconds of inactivity.
Methods
clearStack()
protected
clearStack(closePage
):void
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:149
Closes all open views and clears the stack.
Parameters
Parameter | Type | Description |
---|---|---|
closePage | boolean | Whether to close the currently open page, if one exists. |
Returns
void
onInteractionEvent()
onInteractionEvent(
hEvent
,instrumentIndex
):boolean
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:52
Routes the HEvents to the views.
Parameters
Parameter | Type | Description |
---|---|---|
hEvent | string | The event identifier. |
instrumentIndex | number | The index of the instrument. |
Returns
boolean
Whether the event was handled.
open()
open<
T
>(type
):T
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:82
Opens a view. Opening a page will close all other views,
Type Parameters
Type Parameter |
---|
T extends GuiDialog <GuiDialogProps > |
Parameters
Parameter | Type | Description |
---|---|---|
type | string & keyof K | The type of the view to open. |
Returns
T
The view that was opened.
Throws
Error if the view type is not registered with this service.
registerView()
registerView(
type?
,vnodeFn?
):void
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:172
Registers a view with the service.
Parameters
Parameter | Type | Description |
---|---|---|
type? | string & keyof K | The type of the view. |
vnodeFn? | () => VNode | A function creating the VNode. |
Returns
void
routeInteractionEventToViews()
protected
routeInteractionEventToViews(evt
):boolean
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:67
Routes an interaction to the active view, and if it is not handled, re-routes the interaction to the currently open page if it exists and is not the active view.
Parameters
Parameter | Type | Description |
---|---|---|
evt | GuiHEvent | An interaction event. |
Returns
boolean
Whether the event was handled.
startInteractionTimeout()
protected
startInteractionTimeout():void
Defined in: workingtitle-instruments-wt21/shared/UI/MenuViewService.ts:178
Starts/resets a 10 second timer, which will close the menu when finished. Call this function whenever there is an interaction with the menu.
Returns
void