replyType?: boolean;
focus?: boolean;
disabled?: boolean;
- onSubmit?(val: string): any;
+ maxLength?: number;
+ onSubmit?(msg: { val: string; formId: string }): any;
onContentChange?(val: string): any;
onReplyCancel?(): any;
+ hideNavigationWarnings?: boolean;
}
interface MarkdownTextAreaState {
}
componentDidUpdate() {
- if (this.state.content) {
+ if (!this.props.hideNavigationWarnings && this.state.content) {
window.onbeforeunload = () => true;
} else {
window.onbeforeunload = undefined;
render() {
return (
<form id={this.formId} onSubmit={linkEvent(this, this.handleSubmit)}>
- <Prompt when={this.state.content} message={i18n.t('block_leaving')} />
+ <Prompt
+ when={!this.props.hideNavigationWarnings && this.state.content}
+ message={i18n.t('block_leaving')}
+ />
<div class="form-group row">
<div className={`col-sm-12`}>
<textarea
required
disabled={this.props.disabled}
rows={2}
- maxLength={10000}
+ maxLength={this.props.maxLength || 10000}
/>
{this.state.previewMode && (
<div
- className="card card-body md-div"
+ className="card bg-transparent border-secondary card-body md-div"
dangerouslySetInnerHTML={mdToHtml(this.state.content)}
/>
)}
event.preventDefault();
i.state.loading = true;
i.setState(i.state);
- i.props.onSubmit(i.state.content);
+ let msg = { val: i.state.content, formId: i.formId };
+ i.props.onSubmit(msg);
}
handleReplyCancel(i: MarkdownTextArea) {