feat: Default language dropdowns to user's primary language

This commit is contained in:
Jay Sitter 2023-06-22 00:54:07 -04:00
parent cda9bd0a79
commit f0375889d3
4 changed files with 22 additions and 3 deletions

View file

@ -1,4 +1,5 @@
import { myAuthRequired } from "@utils/app";
import getUserPrimaryLanguage from "@utils/app/user-primary-language";
import { capitalizeFirstLetter } from "@utils/helpers";
import { Component } from "inferno";
import { T } from "inferno-i18next-dess";
@ -40,6 +41,10 @@ export class CommentForm extends Component<CommentFormProps, any> {
: undefined
: undefined;
const userPrimaryLanguage = getUserPrimaryLanguage(
UserService?.Instance?.myUserInfo
);
return (
<div
className={["comment-form", "mb-3", this.props.containerClass].join(
@ -49,6 +54,7 @@ export class CommentForm extends Component<CommentFormProps, any> {
{UserService.Instance.myUserInfo ? (
<MarkdownTextArea
initialContent={initialContent}
initialLanguageId={userPrimaryLanguage}
showLanguage
buttonTitle={this.buttonTitle}
finished={this.props.finished}

View file

@ -4,6 +4,7 @@ import {
myAuth,
myAuthRequired,
} from "@utils/app";
import getUserPrimaryLanguage from "@utils/app/user-primary-language";
import {
capitalizeFirstLetter,
debounce,
@ -323,8 +324,9 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
}
render() {
const firstLang = this.state.form.language_id;
const selectedLangs = firstLang ? Array.of(firstLang) : undefined;
const userPrimaryLanguage = getUserPrimaryLanguage(
UserService?.Instance?.myUserInfo
);
const url = this.state.form.url;
@ -494,8 +496,8 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
</div>
<LanguageSelect
allLanguages={this.props.allLanguages}
selectedLanguageIds={[userPrimaryLanguage]}
siteLanguages={this.props.siteLanguages}
selectedLanguageIds={selectedLangs}
multiple={false}
onChange={this.handleLanguageChange}
/>

View file

@ -52,6 +52,7 @@ import showScores from "./show-scores";
import siteBannerCss from "./site-banner-css";
import updateCommunityBlock from "./update-community-block";
import updatePersonBlock from "./update-person-block";
import getUserPrimaryLanguage from "./user-primary-language";
export {
buildCommentsTree,
@ -86,6 +87,7 @@ export {
getIdFromProps,
getRecipientIdFromProps,
getUpdatedSearchId,
getUserPrimaryLanguage,
initializeSite,
insertCommentIntoTree,
isAuthPath,

View file

@ -0,0 +1,9 @@
import { UserService } from "../../services";
export default function getUserPrimaryLanguage(
myUserInfo = UserService.Instance.myUserInfo
): number {
// Get first language in discussion languages array that isn't equal to "0",
// which is the language selection "Undetermined"
return myUserInfo?.discussion_languages.find(lang => lang !== 0) || 0;
}