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"]`
|