diff --git a/apps/client/src/widgets/ribbon/BasicPropertiesTab.tsx b/apps/client/src/widgets/ribbon/BasicPropertiesTab.tsx index ce01fa3d8..d5e3332c1 100644 --- a/apps/client/src/widgets/ribbon/BasicPropertiesTab.tsx +++ b/apps/client/src/widgets/ribbon/BasicPropertiesTab.tsx @@ -15,11 +15,11 @@ import FormDropdownList from "../react/FormDropdownList"; import toast from "../../services/toast"; import branches from "../../services/branches"; import sync from "../../services/sync"; -import appContext from "../../components/app_context"; import HelpButton from "../react/HelpButton"; import { TabContext } from "./ribbon-interface"; import Modal from "../react/Modal"; import { CodeMimeTypesList } from "../type_widgets/options/code_notes"; +import { ContentLanguagesList } from "../type_widgets/options/i18n"; export default function BasicPropertiesTab({ note }: TabContext) { return ( @@ -292,6 +292,7 @@ function NoteLanguageSwitch({ note }: { note?: FNote | null }) { }; const [ currentNoteLanguage, setCurrentNoteLanguage ] = useNoteLabel(note, "language"); + const [ modalShown, setModalShown ] = useState(false); const locales = useMemo(() => { const enabledLanguages = JSON.parse(languages ?? "[]") as string[]; @@ -348,14 +349,20 @@ function NoteLanguageSwitch({ note }: { note?: FNote | null }) { })} { - e.stopPropagation(); - appContext.tabManager.openContextWithNote("_optionsLocalization", { activate: true }); - }} + onClick={() => setModalShown(true)} >{t("note_language.configure-languages")} + + setModalShown(false)} + size="lg" scrollable + > + + ) } diff --git a/apps/client/src/widgets/type_widgets/options/i18n.tsx b/apps/client/src/widgets/type_widgets/options/i18n.tsx index 1a37297eb..309f164bb 100644 --- a/apps/client/src/widgets/type_widgets/options/i18n.tsx +++ b/apps/client/src/widgets/type_widgets/options/i18n.tsx @@ -118,18 +118,25 @@ function DateSettings() { } function ContentLanguages() { - const locales = useMemo(() => getAvailableLocales(), []); - const [ languages, setLanguages ] = useTriliumOptionJson("languages"); - return ( {t("content_language.description")} - + ); +} + +export function ContentLanguagesList() { + const locales = useMemo(() => getAvailableLocales(), []); + const [ languages, setLanguages ] = useTriliumOptionJson("languages"); + + return ( + + ); } \ No newline at end of file