From b81fd699819a62b1939a2325045c39e4219d2cc9 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 4 Mar 2025 18:38:07 +0200 Subject: [PATCH] fix(note_language): crash if user entered invalid locale --- src/public/app/widgets/note_language.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/public/app/widgets/note_language.ts b/src/public/app/widgets/note_language.ts index e81121119..a1ef83bd0 100644 --- a/src/public/app/widgets/note_language.ts +++ b/src/public/app/widgets/note_language.ts @@ -16,6 +16,11 @@ const TPL = `\ `; +const DEFAULT_LOCALE: Locale = { + id: "", + name: t("note_language.not_set") +}; + export default class NoteLanguageWidget extends NoteContextAwareWidget { private dropdown!: Dropdown; @@ -27,10 +32,7 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget { constructor() { super(); this.locales = [ - { - id: "", - name: t("note_language.not_set") - }, + DEFAULT_LOCALE, "---", ...getAvailableLocales() ]; @@ -81,7 +83,7 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget { async refreshWithNote(note: FNote) { const languageId = note.getLabelValue("language") ?? ""; - const language = this.locales.find((l) => (typeof l === "object" && l.id === languageId)) as Locale; + const language = (this.locales.find((l) => (typeof l === "object" && l.id === languageId)) as Locale | null) ?? DEFAULT_LOCALE; this.$noteLanguageDesc.text(language.name); }