mirror of
https://github.com/flarum/framework.git
synced 2025-05-26 08:39:56 +08:00
Replace Ember app with Mithril app
This commit is contained in:
45
js/forum/src/components/composer-body.js
Normal file
45
js/forum/src/components/composer-body.js
Normal file
@ -0,0 +1,45 @@
|
||||
import Component from 'flarum/component';
|
||||
import LoadingIndicator from 'flarum/components/loading-indicator';
|
||||
import TextEditor from 'flarum/components/text-editor';
|
||||
import avatar from 'flarum/helpers/avatar';
|
||||
import listItems from 'flarum/helpers/list-items';
|
||||
|
||||
export default class ComposerBody extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.loading = m.prop(false);
|
||||
this.disabled = m.prop(false);
|
||||
this.content = m.prop(this.props.originalContent);
|
||||
}
|
||||
|
||||
view() {
|
||||
return m('div', {config: this.element}, [
|
||||
avatar(this.props.user, {className: 'composer-avatar'}),
|
||||
m('div.composer-body', [
|
||||
m('ul.composer-header', listItems(this.headerItems().toArray())),
|
||||
m('div.composer-editor', TextEditor.component({
|
||||
submitLabel: this.props.submitLabel,
|
||||
placeholder: this.props.placeholder,
|
||||
disabled: this.loading(),
|
||||
onchange: this.content,
|
||||
onsubmit: this.onsubmit.bind(this),
|
||||
value: this.content()
|
||||
}))
|
||||
]),
|
||||
LoadingIndicator.component({className: 'composer-loading'+(this.loading() ? ' active' : '')})
|
||||
]);
|
||||
}
|
||||
|
||||
focus() {
|
||||
this.$().find(':input:enabled:visible:first').focus();
|
||||
}
|
||||
|
||||
preventExit() {
|
||||
return this.content() != this.props.originalContent && !confirm(this.props.confirmExit);
|
||||
}
|
||||
|
||||
onsubmit(value) {
|
||||
//
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user