hosanna-ui-docs - v0.9.0
    Preparing search index...

    TabControllerView manages a set of tabs, each with its own navigation stack.

    • Supports dynamic tab addition and removal.
    • Each tab is backed by a NavControllerView for independent navigation.
    • Handles tab selection, hiding, and view hibernation for performance.
    TabController({ id: 'tabController' })
    .tabs(this.tabs)
    .selectedTab(this.selectedButtonId)
    .onTabSelected((tabId: string) => {
    console.info(`Tab selected: ${tabId}`);
    })
    .onTabHidden((tabId: string) => {
    console.info(`Tab hidden: ${tabId}`);
    if (tabId === '') {
    this.selectedButtonId = 'home';
    }
    })

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    __isMemoizedStateValid: boolean = false
    _cacheKey: string = ''
    _hid: string
    _isInFocusChain: boolean = false
    _rendereredTranslation: [number, number] = ...
    _tabs: ITabControllerTab[] = []

    Internal cache of tab definitions.

    activeStyleViewStatus: ViewStatus = ViewStatus.Normal
    activeViews: Record<string, NavControllerView> = {}

    Active NavControllerViews for each tab, keyed by tab ID.

    aggregateView: undefined | IAggregateView.IAggregateView

    IHosannaView


    audioGuideHint?: string = ''

    This hint can be used in conjunction with the audio guide item

    audioGuideItem?: string | IAudioGuideItem
    calculatedHeight: number = 0
    calculatedWidth: number = 0
    calculatedX: number = 0
    calculatedY: number = 0
    canReceiveFocus: boolean = true

    Indicates whether the element can receive focus.

    children: BaseView.BaseView<ViewState, ISGNGroup>[] = []

    These are the children that are rendered on screen in the tree structure of the view

    childrenChanged: boolean = false
    clippingRect: number[] = ...
    compositeView: boolean = true

    Indicdates whether the view is a focus group which means it can have a focused child Otherwise it will be focused itself

    currentView: undefined | IHosannaView<ViewState> = undefined

    The current navigatable view.

    customData?: unknown
    defaultValues: Partial<TabControllerState> = {}
    eventHandlers: Record<string, Function> = {}
    focusedChildId?: string
    focusId: string = ''
    height: number = 0
    hibernateViewsWhenChangingTabs: boolean = false

    Indicates whether to hibernate views when changing tabs. Note - this is implemented, and has HUGE performance gains; BUT it's buggy and needs to be fixed. It will cause random artifacts in the UI. It is not recommended to use this flag until the bug is fixed.

    id: string = ''
    includeInLayout: boolean = true
    initialFocusId: string = ''
    initialView?: IHosannaView<ViewState> | ViewStruct<ViewState>
    instancePool: IInstancePool
    isAggregateView: boolean = true
    isAutoFocusEnabled: boolean = true

    Indicates whether auto-focus is enabled for the view.

    isFocused: boolean = false

    Indicates whether the element is currently focused.

    isLayoutDirty: boolean = false
    isManagingVisibilityCallbacks: boolean = true

    Indicates whether the view is managing visibility callbacks.

    isPresented: boolean = false

    If true, this view has been presented in an AggregateViewController

    isSkeleton: boolean = false
    isWaking: boolean = false
    nextViewId: number = 0
    nodePool: INodePool
    onTabHidden?: onTabHiddenHandler

    Callback invoked when a tab is hidden.

    onTabSelected?: onTabSelectedHandler

    Callback invoked when a tab is selected.

    onViewAdded?: onViewAddedHandler
    onViewRemoved?: onViewRemovedHandler
    opacity: number = 1.0
    parent?: IHosannaView<ViewState> = undefined

    The parent focusable element, if any.

    partialRendererHibernatedState: Partial<TabControllerState> = {}
    rotation: number = 0
    scale: number[] = ...
    scaleRotateCenter: number[] = ...
    scrollablePositionX: undefined | number = undefined
    scrollablePositionY: undefined | number = undefined
    selectedTab?: string

    The currently selected tab ID.

    selectedTabId?: string

    Internal state for the selected tab ID.

    shouldRemoveFromAggregateView: boolean = true

    Indicates whether the view should be removed from the aggregate view.

    staticType: ViewStaticType = ViewStaticType.None
    styleRegistry: IStyleRegistry
    subViews: BaseView.BaseView<ViewState, ISGNGroup>[] = []

    These are the children that were created in getViews, in a flat strcuture - it contains EVERYTHING that we declared.

    subViewsChanged: boolean = false
    tabs?: ITabControllerTab[]

    List of tab definitions for the controller.

    A temporary transition for the view.

    transitionStyleKey: string = ""

    Specifies the key used to determine the transition style for the view. This string can be used to select or identify different animation or transition effects when navigating between views or states within the application.

    translation: number[] = ...
    viewOwner: IHosannaView<ViewState>

    The IHosannaView subclass that created us in getViews

    viewStatus: ViewStatus = ViewStatus.Normal
    visible: boolean = true

    Indicates whether the navigatable entity is visible.

    width: number = 0

    Accessors

    Methods

    • Builds the view and attaches it to the view owner.

      Parameters

      • struct: ViewStruct<ViewState>
      • OptionalmountTarget: IHosannaView<ViewState>

        The target to mount the view.

      • childIndex: number = -1

      Returns undefined | IHosannaView<ViewState>

      The built view or undefined.

    • Parameters

      • nextStructs: ViewStruct<ViewState>[]
      • map: Record<string, ViewStruct<ViewState>> = {}
      • idList: { childIndex: number; id: string }[] = []

      Returns {
          idList: { childIndex: number; id: string }[];
          mappedNextStructs: Record<string, ViewStruct<ViewState>>;
      }

    • Presents a new screen in the navigation stack or as a dialog.

      Parameters

      • screen: ViewStruct<ViewState>

        The screen to be presented, represented by a ViewStruct<ViewState>.

      • Optionaloptions: IScreenPresentationOptions

        Optional presentation options.

        • isDialog

          If true, the screen will be presented as a dialog.

        • animated

          If true, the screen transition will be animated.

      Returns void