Hide navigation warnings on markdown textarea for site-form and user bios. Fixes #1051

This commit is contained in:
Dessalines 2020-08-02 10:41:17 -04:00
parent fbd9adb135
commit 089aefc7af
3 changed files with 8 additions and 2 deletions

View file

@ -25,6 +25,7 @@ interface MarkdownTextAreaProps {
onSubmit?(msg: { val: string; formId: string }): any; onSubmit?(msg: { val: string; formId: string }): any;
onContentChange?(val: string): any; onContentChange?(val: string): any;
onReplyCancel?(): any; onReplyCancel?(): any;
hideNavigationWarnings?: boolean;
} }
interface MarkdownTextAreaState { interface MarkdownTextAreaState {
@ -78,7 +79,7 @@ export class MarkdownTextArea extends Component<
} }
componentDidUpdate() { componentDidUpdate() {
if (this.state.content) { if (!this.props.hideNavigationWarnings && this.state.content) {
window.onbeforeunload = () => true; window.onbeforeunload = () => true;
} else { } else {
window.onbeforeunload = undefined; window.onbeforeunload = undefined;
@ -110,7 +111,10 @@ export class MarkdownTextArea extends Component<
render() { render() {
return ( return (
<form id={this.formId} onSubmit={linkEvent(this, this.handleSubmit)}> <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 class="form-group row">
<div className={`col-sm-12`}> <div className={`col-sm-12`}>
<textarea <textarea

View file

@ -111,6 +111,7 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
<MarkdownTextArea <MarkdownTextArea
initialContent={this.state.siteForm.description} initialContent={this.state.siteForm.description}
onContentChange={this.handleSiteDescriptionChange} onContentChange={this.handleSiteDescriptionChange}
hideNavigationWarnings
/> />
</div> </div>
</div> </div>

View file

@ -593,6 +593,7 @@ export class User extends Component<any, UserState> {
initialContent={this.state.userSettingsForm.bio} initialContent={this.state.userSettingsForm.bio}
onContentChange={this.handleUserSettingsBioChange} onContentChange={this.handleUserSettingsBioChange}
maxLength={300} maxLength={300}
hideNavigationWarnings
/> />
</div> </div>
</div> </div>