fix(status_bar): language selector not updating properly

This commit is contained in:
Elian Doran 2025-12-10 23:36:47 +02:00
parent 6e8e10323f
commit 1ab89d0db0
No known key found for this signature in database
3 changed files with 19 additions and 13 deletions

View File

@ -1,19 +1,25 @@
import "./NoteStatusBar.css";
import { t } from "../services/i18n";
import { openInAppHelpFromUrl } from "../services/utils";
import "./NoteStatusBar.css";
import { FormListItem } from "./react/FormList";
import { useNoteContext } from "./react/hooks";
import { NoteLanguageSelector } from "./ribbon/BasicPropertiesTab";
export default function NoteStatusBar() {
const { note } = useNoteContext();
return (
<div className="note-status-bar">
<NoteLanguageSelector extraChildren={(
<FormListItem
onClick={() => openInAppHelpFromUrl("veGu4faJErEM")}
icon="bx bx-help-circle"
>{t("note_language.help-on-languages")}</FormListItem>
)} />
<NoteLanguageSelector
note={note}
extraChildren={(
<FormListItem
onClick={() => openInAppHelpFromUrl("veGu4faJErEM")}
icon="bx bx-help-circle"
>{t("note_language.help-on-languages")}</FormListItem>
)}
/>
</div>
);
}

View File

@ -330,7 +330,7 @@ function NoteLanguageSwitch({ note }: { note?: FNote | null }) {
);
}
export function NoteLanguageSelector({ note, extraChildren }: { note?: FNote | null, extraChildren?: ComponentChildren }) {
export function NoteLanguageSelector({ note, extraChildren }: { note: FNote | null | undefined, extraChildren?: ComponentChildren }) {
const [ modalShown, setModalShown ] = useState(false);
const [ languages ] = useTriliumOption("languages");
const DEFAULT_LOCALE = {

View File

@ -1,8 +1,9 @@
import { Locale } from "@triliumnext/commons";
import { ComponentChildren } from "preact";
import { useMemo } from "preact/hooks";
import Dropdown from "../../../react/Dropdown";
import { FormDropdownDivider, FormListItem } from "../../../react/FormList";
import { ComponentChildren } from "preact";
import { useMemo, useState } from "preact/hooks";
export function LocaleSelector({ id, locales, currentValue, onChange, defaultLocale, extraChildren }: {
id?: string;
@ -12,7 +13,7 @@ export function LocaleSelector({ id, locales, currentValue, onChange, defaultLoc
defaultLocale?: Locale,
extraChildren?: ComponentChildren
}) {
const [ activeLocale, setActiveLocale ] = useState(defaultLocale?.id === currentValue ? defaultLocale : locales.find(l => l.id === currentValue));
const activeLocale = defaultLocale?.id === currentValue ? defaultLocale : locales.find(l => l.id === currentValue);
const processedLocales = useMemo(() => {
const leftToRightLanguages = locales.filter((l) => !l.rtl);
@ -48,7 +49,6 @@ export function LocaleSelector({ id, locales, currentValue, onChange, defaultLoc
rtl={locale.rtl}
checked={locale.id === currentValue}
onClick={() => {
setActiveLocale(locale);
onChange(locale.id);
}}
>{locale.name}</FormListItem>