2.1 KiB
2.1 KiB
⚠️ This plugin is still in active development and may change frequently
Documentation
The Discourse Chat plugin adds chat functionality to your Discourse so it can natively support both long-form and short-form communication needs of your online community.
For documentation, see Discourse Chat
Plugin API
registerChatComposerButton
Usage
api.registerChatComposerButton({ id: "foo", ... });
Options
Every option accepts a value
or a function
, when passing a function this
will be the chat-composer
component instance. Example of an option using a function:
api.registerChatComposerButton({
id: "foo",
displayed() {
return this.site.mobileView && this.canAttachUploads;
},
});
Required
id
unique, used to identify your button, eg: "gifs"action
callback when the button is pressed, can be an action name or an anonymous function, eg: "onFooClicked" or() => { console.log("clicked") }
A button requires at least an icon or a label:
icon
, eg: "times"label
, text displayed on the button, a translatable key, eg: "foo.bar"translatedLabel
, text displayed on the button, a string, eg: "Add gifs"
Optional
position
, can be "inline" or "dropdown", defaults to "inline"title
, title attribute of the button, a translatable key, eg: "foo.bar"translatedTitle
, title attribute of the button, a string, eg: "Add gifs"ariaLabel
, aria-label attribute of the button, a translatable key, eg: "foo.bar"translatedAriaLabel
, aria-label attribute of the button, a string, eg: "Add gifs"classNames
, additional names to add to the button’s class attribute, eg: ["foo", "bar"]displayed
, hide/or show the button, expects a booleandisabled
, sets the disabled attribute on the button, expects a booleanpriority
, an integer defining the order of the buttons, higher comes first, eg:700
dependentKeys
, list of property names which should trigger a refresh of the buttons when changed, eg:["foo.bar", "bar.baz"]