55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
:warning: 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](https://meta.discourse.org/t/discourse-chat/230881)
|
||
|
||
## Plugin API
|
||
|
||
### registerChatComposerButton
|
||
|
||
#### Usage
|
||
|
||
```javascript
|
||
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:
|
||
|
||
```javascript
|
||
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 boolean
|
||
- `disabled`, sets the disabled attribute on the button, expects a boolean
|
||
- `priority`, 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"]`
|