Reference Source
import DiscussionComposer from 'flarum/components/DiscussionComposer'
public class | source

DiscussionComposer

Extends:

ComponentComposerBody → DiscussionComposer

The DiscussionComposer component displays the composer content for starting a new discussion. It adds a text field as a header control so the user can enter the title of their discussion. It also overrides the submit and willExit actions to account for the title.

Props

  • All of the props for ComposerBody
  • titlePlaceholder

Static Method Summary

Static Public Methods
public static

initProps(props: *)

Member Summary

Public Members
public
public

The value of the title input.

Method Summary

Public Methods
public

Get the data to submit to the server when the discussion is saved.

public

hasChanges(): *

public
public

init()

public

onkeydown(e: Event)

Handle the title input's keydown event. When the return key is pressed, move the focus to the start of the text editor.

public

Inherited Summary

From class Component
public static

component(props: Object, children: *): Object

Get a Mithril component object for this component, preloaded with props.

public static

initProps(props: Object)

Initialize the component's props.

public

element: *

The root DOM element for the component.

public

The properties passed into the component.

public

Whether or not to retain the component's subtree on redraw.

public

$(selector: String): jQuery

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.

public

config(isInitialized: Boolean, context: Object, vdom: Object)

Called after the component's root element is redrawn. This hook can be used to perform any actions on the DOM, both on the initial draw and any subsequent redraws. See Mithril's documentation for more information.

public

Called when the component is destroyed, i.e.

public

Get the renderable virtual DOM that represents the component's view.

This should NOT be overridden by subclasses. Subclasses wishing to define their virtual DOM should override Component#view instead.

protected

init()

Called when the component is constructed.

protected

Get the virtual DOM that represents the component's view.

From class ComposerBody
public
public

content: *

this member was deprecated. BC layer, remove in Beta 15.
public

editor: *

public

Whether or not the component is loading.

public

Check if there is any unsaved data.

public

headerItems(): ItemList

Build an item list for the composer's header.

public

init()

public

loaded()

Stop loading.

public abstract

Handle the submit event of the text editor.

public

view(): *

Static Public Methods

public static initProps(props: *) source

Initialize the component's props.

Override:

Component#initProps

Params:

NameTypeAttributeDescription
props *

Public Members

public loading: boolean source

Whether or not the component is loading.

Override:

ComposerBody#loading

public title: Function source

The value of the title input.

Public Methods

public data(): Object source

Get the data to submit to the server when the discussion is saved.

Return:

Object

public hasChanges(): * source

Check if there is any unsaved data.

Override:

ComposerBody#hasChanges

Return:

*

public headerItems(): * source

Build an item list for the composer's header.

Override:

ComposerBody#headerItems

Return:

*

public init() source

Called when the component is constructed.

Override:

ComposerBody#init

public onkeydown(e: Event) source

Handle the title input's keydown event. When the return key is pressed, move the focus to the start of the text editor.

Params:

NameTypeAttributeDescription
e Event

public onsubmit() source

Handle the submit event of the text editor.

Override:

ComposerBody#onsubmit