diff --git a/src/public/app/widgets/type_widgets/abstract_text_type_widget.js b/src/public/app/widgets/type_widgets/abstract_text_type_widget.js index 9696b0c90..f542cdccb 100644 --- a/src/public/app/widgets/type_widgets/abstract_text_type_widget.js +++ b/src/public/app/widgets/type_widgets/abstract_text_type_widget.js @@ -5,6 +5,7 @@ import linkService from "../../services/link.js"; import contentRenderer from "../../services/content_renderer.js"; import utils from "../../services/utils.js"; import options from "../../services/options.js"; +import attributes from "../../services/attributes.js"; export default class AbstractTextTypeWidget extends TypeWidget { doRender() { @@ -117,5 +118,16 @@ export default class AbstractTextTypeWidget extends TypeWidget { if (loadResults.isOptionReloaded("codeBlockWordWrap")) { this.refreshCodeBlockOptions(); } + + if (loadResults.getAttributeRows().find((attr) => + attr.type === "label" && + attr.name === "language" && + attributes.isAffecting(attr, this.note))) + { + await this.onLanguageChanged(); + } } + + async onLanguageChanged() { } + } diff --git a/src/public/app/widgets/type_widgets/editable_text.js b/src/public/app/widgets/type_widgets/editable_text.js index 58a8a24ff..67c622de2 100644 --- a/src/public/app/widgets/type_widgets/editable_text.js +++ b/src/public/app/widgets/type_widgets/editable_text.js @@ -16,7 +16,6 @@ import toast from "../../services/toast.js"; import { getMermaidConfig } from "../mermaid.js"; import { normalizeMimeTypeForCKEditor } from "../../services/mime_type_definitions.js"; import { buildConfig, buildToolbarConfig } from "./ckeditor/toolbars.js"; -import attributes from "../../services/attributes.js"; const ENABLE_INSPECTOR = false; @@ -506,16 +505,8 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget { this.watchdog.editor.setData(data); } - async entitiesReloadedEvent(e) { - if (e.loadResults.getAttributeRows().find((attr) => - attr.type === "label" && - attr.name === "language" && - attributes.isAffecting(attr, this.note))) - { - await this.reinitialize(); - } - - super.entitiesReloadedEvent(e); + async onLanguageChanged() { + await this.reinitialize(); } } diff --git a/src/public/app/widgets/type_widgets/read_only_text.ts b/src/public/app/widgets/type_widgets/read_only_text.ts index 871826b04..8d788d6bd 100644 --- a/src/public/app/widgets/type_widgets/read_only_text.ts +++ b/src/public/app/widgets/type_widgets/read_only_text.ts @@ -101,10 +101,7 @@ export default class ReadOnlyTextTypeWidget extends AbstractTextTypeWidget { // (see https://github.com/zadam/trilium/issues/1590 for example of such conflict) await libraryLoader.requireLibrary(libraryLoader.CKEDITOR); - const languageCode = note.getLabelValue("language"); - const correspondingLocale = getLocaleById(languageCode); - const isRtl = correspondingLocale?.rtl; - this.$widget.attr("dir", isRtl ? "rtl" : "ltr"); + this.onLanguageChanged(); const blob = await note.getBlob(); @@ -159,4 +156,12 @@ export default class ReadOnlyTextTypeWidget extends AbstractTextTypeWidget { resolve(this.$content); } + + async onLanguageChanged(): Promise { + const languageCode = this.note?.getLabelValue("language"); + const correspondingLocale = getLocaleById(languageCode); + const isRtl = correspondingLocale?.rtl; + this.$widget.attr("dir", isRtl ? "rtl" : "ltr"); + } + }