fix SafeTextarea clear()
This commit is contained in:
@@ -283,7 +283,7 @@ export class SafeTextarea extends Component {
|
||||
};
|
||||
this.on_change_bound = this.on_change.bind(this);
|
||||
this.on_keydown_bound = this.on_keydown.bind(this);
|
||||
this.clear = this.clear.bind(this);
|
||||
this.clear_and_then = this.clear_and_then.bind(this);
|
||||
this.area_ref = React.createRef();
|
||||
this.change_callback = props.on_change || (() => {});
|
||||
this.submit_callback = props.on_submit || (() => {});
|
||||
@@ -311,6 +311,7 @@ export class SafeTextarea extends Component {
|
||||
});
|
||||
this.change_callback(event.target.value);
|
||||
}
|
||||
|
||||
on_keydown(event) {
|
||||
if (event.key === 'Enter' && event.ctrlKey && !event.altKey) {
|
||||
event.preventDefault();
|
||||
@@ -318,20 +319,26 @@ export class SafeTextarea extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
clear() {
|
||||
this.setState({
|
||||
clear_and_then(callback = null) {
|
||||
this.setState(
|
||||
{
|
||||
text: '',
|
||||
});
|
||||
},
|
||||
callback,
|
||||
);
|
||||
}
|
||||
|
||||
set(text) {
|
||||
this.change_callback(text);
|
||||
this.setState({
|
||||
text: text,
|
||||
});
|
||||
}
|
||||
|
||||
get() {
|
||||
return this.state.text;
|
||||
}
|
||||
|
||||
focus() {
|
||||
this.area_ref.current.focus();
|
||||
}
|
||||
|
||||
@@ -425,13 +425,16 @@ export class ReplyForm extends Component {
|
||||
save_attentions();
|
||||
}
|
||||
|
||||
this.setState({
|
||||
this.setState(
|
||||
{
|
||||
loading_status: 'done',
|
||||
text: '',
|
||||
preview: false,
|
||||
});
|
||||
this.area_ref.current.clear();
|
||||
this.props.on_complete();
|
||||
},
|
||||
() => {
|
||||
this.area_ref.current.clear_and_then(this.props.on_complete);
|
||||
},
|
||||
);
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error(e);
|
||||
@@ -602,15 +605,18 @@ export class PostForm extends Component {
|
||||
throw new Error(json.msg);
|
||||
}
|
||||
|
||||
this.setState({
|
||||
window.CW_BACKUP = '';
|
||||
window.POLL_BACKUP = null;
|
||||
this.setState(
|
||||
{
|
||||
loading_status: 'done',
|
||||
text: '',
|
||||
preview: false,
|
||||
});
|
||||
this.area_ref.current.clear();
|
||||
this.props.on_complete();
|
||||
window.CW_BACKUP = '';
|
||||
window.POLL_BACKUP = null;
|
||||
},
|
||||
() => {
|
||||
this.area_ref.current.clear_and_then(this.props.on_complete);
|
||||
},
|
||||
);
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error(e);
|
||||
|
||||
Reference in New Issue
Block a user