Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ExtensionPage<Attrs>

Type parameters

Hierarchy

Index

Constructors

constructor

Properties

Protected attrs

attrs: Attrs

The attributes passed into the component.

see

https://mithril.js.org/components.html#passing-data-to-components

Protected bodyClass

bodyClass: string = ''

A class name to apply to the body while the route is active.

changingState

changingState: boolean = false

Protected element

element: Element

The root DOM element for the component.

extension

extension: Extension

infoFields

infoFields: { discuss: string; documentation: string; donate: string; source: string; support: string; website: string } = ...

Type declaration

  • discuss: string
  • documentation: string
  • donate: string
  • source: string
  • support: string
  • website: string

loading

loading: boolean = false

Protected scrollTopOnCreate

scrollTopOnCreate: boolean = true

Whether we should scroll to the top of the page when its rendered.

settings

settings: Record<string, Stream<string>> = {}

Protected state

state: undefined

Class component state that is persisted between redraws.

Updating this will not automatically trigger a redraw, unlike other frameworks.

This is different to Vnode state, which is always an instance of your class component.

This is undefined by default.

Protected useBrowserScrollRestoration

useBrowserScrollRestoration: boolean = true

Whether the browser should restore scroll state on refreshes.

Methods

Protected $

  • Returns a jQuery object for this component's element. If you pass in a selector string, this method will return a jQuery object, using the current element as its buffer.

    For example, calling component.$('li') will return a jQuery object containing all of the li elements inside the DOM element of this component.

    final

    Parameters

    • Optional selector: string

    Returns JQuery<HTMLElement>

    the jQuery object for the DOM node

buildSettingComponent

  • buildSettingComponent takes a settings object and turns it into a component. Depending on the type of input, you can set the type to 'bool', 'select', or any standard type. Any values inside the 'extra' object will be added to the component as an attribute.

    Alternatively, you can pass a callback that will be executed in ExtensionPage's context to include custom JSX elements.

    example

    { setting: 'acme.checkbox', label: app.translator.trans('acme.admin.setting_label'), type: 'bool', help: app.translator.trans('acme.admin.setting_help'), className: 'Setting-item' }

    example

    { setting: 'acme.select', label: app.translator.trans('acme.admin.setting_label'), type: 'select', options: { 'option1': 'Option 1 label', 'option2': 'Option 2 label', }, default: 'option1', }

    example

    () => { return

    My cool component

    ; }

    Parameters

    Returns Children

className

  • className(): string

content

dirty

  • dirty(): Record<string, string>

header

  • header(): Element[]

headerInfo

infoItems

isChanged

  • isChanged(): number

isEnabled

  • isEnabled(): any

onbeforeremove

  • onbeforeremove(vnode: VnodeDOM<Attrs, ExtensionPage<Attrs>>): void

onbeforeupdate

  • onbeforeupdate(vnode: VnodeDOM<Attrs, ExtensionPage<Attrs>>): void

oncreate

onerror

oninit

onremove

onsaved

  • onsaved(): void

onupdate

saveSettings

  • saveSettings(e: SubmitEvent & { redraw: boolean }): Promise<void>

sections

setting

  • setting(key: string, fallback?: string): Stream<string>

submitButton

  • submitButton(vnode: Vnode<Attrs, ExtensionPage<Attrs>>): Children

toggle

  • toggle(): void

topItems

view

  • view(vnode: VnodeDOM<Attrs, ExtensionPage<Attrs>>): null | Element

Static component

  • component<SAttrs>(attrs?: SAttrs, children?: Children): Vnode<{}, {}>

Static Protected initAttrs

  • initAttrs<T>(attrs: T): void

Generated using TypeDoc version 0.22.10