diff --git a/app/assets/javascripts/discourse/app/initializers/post-decorations.js b/app/assets/javascripts/discourse/app/initializers/post-decorations.js index 5b04730dd0b..ee0290bf5ee 100644 --- a/app/assets/javascripts/discourse/app/initializers/post-decorations.js +++ b/app/assets/javascripts/discourse/app/initializers/post-decorations.js @@ -32,7 +32,7 @@ export default { ); api.decorateCookedElement(lightbox, { id: "discourse-lightbox" }); if (siteSettings.support_mixed_text_direction) { - api.decorateCooked(setTextDirections, { + api.decorateCookedElement(setTextDirections, { id: "discourse-text-direction", }); } diff --git a/app/assets/javascripts/discourse/app/lib/text-direction.js b/app/assets/javascripts/discourse/app/lib/text-direction.js index b3da0964b6e..9c01d1d3fa1 100644 --- a/app/assets/javascripts/discourse/app/lib/text-direction.js +++ b/app/assets/javascripts/discourse/app/lib/text-direction.js @@ -13,19 +13,19 @@ export function isLTR(text) { return ltrDirCheck.test(text); } -export function setTextDirections($elem) { - $elem.find("*").each((i, e) => { - let $e = $(e), - textContent = $e.text(); - if (textContent) { - isRTL(textContent) ? $e.attr("dir", "rtl") : $e.attr("dir", "ltr"); +export function setTextDirections(elem) { + for (let e of elem.children) { + if (e.textContent) { + e.setAttribute("dir", isRTL(e.textContent) ? "rtl" : "ltr"); } - }); + } } export function siteDir() { if (!_siteDir) { - _siteDir = $("html").hasClass("rtl") ? "rtl" : "ltr"; + _siteDir = document.documentElement.classList.contains("rtl") + ? "rtl" + : "ltr"; } return _siteDir; }