1
0
mirror of https://github.com/flarum/core.git synced 2025-08-08 01:16:52 +02:00

update: forum/components/DiscussionComposer

This commit is contained in:
Alexander Skvortsov
2020-08-08 14:34:16 -04:00
committed by Franz Liedke
parent 9d8b466d57
commit 91609b8a71

View File

@@ -7,16 +7,26 @@ import extractText from '../../common/utils/extractText';
* enter the title of their discussion. It also overrides the `submit` and * enter the title of their discussion. It also overrides the `submit` and
* `willExit` actions to account for the title. * `willExit` actions to account for the title.
* *
* ### Props * ### Attrs
* *
* - All of the props for ComposerBody * - All of the attrs for ComposerBody
* - `titlePlaceholder` * - `titlePlaceholder`
*/ */
export default class DiscussionComposer extends ComposerBody { export default class DiscussionComposer extends ComposerBody {
init() { initAttrs(attrs) {
super.init(); super.initAttrs(attrs);
this.composer.fields.title = this.composer.fields.title || m.prop(''); attrs.placeholder = attrs.placeholder || extractText(app.translator.trans('core.forum.composer_discussion.body_placeholder'));
attrs.submitLabel = attrs.submitLabel || app.translator.trans('core.forum.composer_discussion.submit_button');
attrs.confirmExit = attrs.confirmExit || extractText(app.translator.trans('core.forum.composer_discussion.discard_confirmation'));
attrs.titlePlaceholder = attrs.titlePlaceholder || extractText(app.translator.trans('core.forum.composer_discussion.title_placeholder'));
attrs.className = 'ComposerBody--discussion';
}
oninit(vnode) {
super.oninit(vnode);
this.composer.fields.title = this.composer.fields.title || m.stream('');
/** /**
* The value of the title input. * The value of the title input.
@@ -26,16 +36,6 @@ export default class DiscussionComposer extends ComposerBody {
this.title = this.composer.fields.title; this.title = this.composer.fields.title;
} }
static initProps(props) {
super.initProps(props);
props.placeholder = props.placeholder || extractText(app.translator.trans('core.forum.composer_discussion.body_placeholder'));
props.submitLabel = props.submitLabel || app.translator.trans('core.forum.composer_discussion.submit_button');
props.confirmExit = props.confirmExit || extractText(app.translator.trans('core.forum.composer_discussion.discard_confirmation'));
props.titlePlaceholder = props.titlePlaceholder || extractText(app.translator.trans('core.forum.composer_discussion.title_placeholder'));
props.className = 'ComposerBody--discussion';
}
headerItems() { headerItems() {
const items = super.headerItems(); const items = super.headerItems();
@@ -47,9 +47,9 @@ export default class DiscussionComposer extends ComposerBody {
<input <input
className="FormControl" className="FormControl"
value={this.title()} value={this.title()}
oninput={m.withAttr('value', this.title)} bidi={this.title}
placeholder={this.props.titlePlaceholder} placeholder={this.attrs.titlePlaceholder}
disabled={!!this.props.disabled} disabled={!!this.attrs.disabled}
onkeydown={this.onkeydown.bind(this)} onkeydown={this.onkeydown.bind(this)}
/> />
</h3> </h3>
@@ -71,7 +71,7 @@ export default class DiscussionComposer extends ComposerBody {
this.composer.editor.moveCursorTo(0); this.composer.editor.moveCursorTo(0);
} }
m.redraw.strategy('none'); e.redraw = false;
} }
hasChanges() { hasChanges() {
@@ -101,7 +101,7 @@ export default class DiscussionComposer extends ComposerBody {
.then((discussion) => { .then((discussion) => {
this.composer.hide(); this.composer.hide();
app.discussions.refresh(); app.discussions.refresh();
m.route(app.route.discussion(discussion)); m.route.set(app.route.discussion(discussion));
}, this.loaded.bind(this)); }, this.loaded.bind(this));
} }
} }