Options
All
  • Public
  • Public/Protected
  • All
Menu

Class DiscussionPage<CustomAttrs>

The DiscussionPage component displays a whole discussion page, including the discussion list pane, the hero, the posts, and the sidebar.

Type parameters

Hierarchy

  • Page<CustomAttrs>
    • DiscussionPage

Index

Constructors

constructor

Properties

attrs

attrs: CustomAttrs

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.

Protected discussion

discussion: null | Discussion = null

The discussion that is being viewed.

element

element: Element

The root DOM element for the component.

Protected near

near: number = 0

The number of the first post that is currently visible in the viewport.

Protected scrollTopOnCreate

scrollTopOnCreate: boolean = true

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

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 stream

stream: null | PostStreamState = null

A public API for interacting with the post stream.

Protected useBrowserScrollRestoration

useBrowserScrollRestoration: boolean = true

Whether the browser should restore scroll state on refreshes.

Methods

$

  • 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

hero

  • hero(): Children

load

  • load(): void

loadingItems

mainContent

onbeforeremove

  • onbeforeremove(vnode: VnodeDOM<CustomAttrs, DiscussionPage<CustomAttrs>>): void

onbeforeupdate

  • onbeforeupdate(vnode: VnodeDOM<CustomAttrs, DiscussionPage<CustomAttrs>>): void

oncreate

  • oncreate(vnode: VnodeDOM<CustomAttrs, DiscussionPage<CustomAttrs>>): void

oninit

onremove

  • onremove(vnode: VnodeDOM<CustomAttrs, DiscussionPage<CustomAttrs>>): void

onupdate

  • onupdate(vnode: VnodeDOM<CustomAttrs, DiscussionPage<CustomAttrs>>): void

pageContent

positionChanged

  • positionChanged(startNumber: number, endNumber: number): void
  • When the posts that are visible in the post stream change (i.e. the user scrolls up or down), then we update the URL and mark the posts as read.

    Parameters

    • startNumber: number
    • endNumber: number

    Returns void

requestParams

  • requestParams(): Record<string, unknown>

show

sidebar

  • sidebar(): Children

sidebarItems

view

  • view(): Element

Static component

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

Static initAttrs

  • initAttrs(attrs: unknown): void
  • Initialize the component's attrs.

    This can be used to assign default values for missing, optional attrs.

    Parameters

    • attrs: unknown

    Returns void

Generated using TypeDoc version 0.22.10