]> Untitled Git - lemmy-ui.git/commitdiff
Merge branch 'main' into feat/create-private-message-updates
authorJay Sitter <jsit@users.noreply.github.com>
Sat, 24 Jun 2023 20:30:35 +0000 (16:30 -0400)
committerGitHub <noreply@github.com>
Sat, 24 Jun 2023 20:30:35 +0000 (16:30 -0400)
1  2 
src/shared/components/common/markdown-textarea.tsx

index f83843e9017eed321fd087d27498b64af210c23f,2d306dcad9263ef3ede96cd0b1b3c326845ffb27..2590609745aad49d144b7d0d431785d409072bc3
@@@ -23,28 -23,15 +23,28 @@@ import NavigationPrompt from "./navigat
  import ProgressBar from "./progress-bar";
  
  interface MarkdownTextAreaProps {
 +  /**
 +   * Initial content inside the textarea
 +   */
    initialContent?: string;
 +  /**
 +   * Numerical ID of the language to select in dropdown
 +   */
    initialLanguageId?: number;
    placeholder?: string;
    buttonTitle?: string;
    maxLength?: number;
 +  /**
 +   * Whether this form is for a reply to a Private Message.
 +   * If true, a "Cancel" button is shown that will close the reply.
 +   */
    replyType?: boolean;
    focus?: boolean;
    disabled?: boolean;
    finished?: boolean;
 +  /**
 +   * Whether to show the language selector
 +   */
    showLanguage?: boolean;
    hideNavigationWarnings?: boolean;
    onContentChange?(val: string): void;
@@@ -273,8 -260,12 +273,12 @@@ export class MarkdownTextArea extends C
                <LanguageSelect
                  iconVersion
                  allLanguages={this.props.allLanguages}
+                 // Only set the selected language ID if it exists as an option
+                 // in the dropdown; otherwise, set it to 0 (Undetermined)
                  selectedLanguageIds={
-                   languageId ? Array.of(languageId) : undefined
+                   languageId && this.props.siteLanguages.includes(languageId)
+                     ? [languageId]
+                     : [0]
                  }
                  siteLanguages={this.props.siteLanguages}
                  onChange={this.handleLanguageChange}
              {/* A flex expander */}
              <div className="flex-grow-1"></div>
  
 -            {this.props.buttonTitle && (
 -              <button
 -                type="submit"
 -                className="btn btn-sm btn-secondary ms-2"
 -                disabled={this.isDisabled}
 -              >
 -                {this.state.loading ? (
 -                  <Spinner />
 -                ) : (
 -                  <span>{this.props.buttonTitle}</span>
 -                )}
 -              </button>
 -            )}
              {this.props.replyType && (
                <button
                  type="button"
                  {I18NextService.i18n.t("cancel")}
                </button>
              )}
 -            {this.state.content && (
 +            <button
 +              type="button"
 +              disabled={!this.state.content}
 +              className={classNames("btn btn-sm btn-secondary ms-2", {
 +                active: this.state.previewMode,
 +              })}
 +              onClick={linkEvent(this, this.handlePreviewToggle)}
 +            >
 +              {this.state.previewMode
 +                ? I18NextService.i18n.t("edit")
 +                : I18NextService.i18n.t("preview")}
 +            </button>
 +            {this.props.buttonTitle && (
                <button
 -                className={`btn btn-sm btn-secondary ms-2 ${
 -                  this.state.previewMode && "active"
 -                }`}
 -                onClick={linkEvent(this, this.handlePreviewToggle)}
 +                type="submit"
 +                className="btn btn-sm btn-secondary ms-2"
 +                disabled={this.isDisabled || !this.state.content}
                >
 -                {this.state.previewMode
 -                  ? I18NextService.i18n.t("edit")
 -                  : I18NextService.i18n.t("preview")}
 +                {this.state.loading && <Spinner className="me-1" />}
 +                {this.props.buttonTitle}
                </button>
              )}
            </div>