about summary refs log tree commit diff
path: root/app/javascript/themes/glitch/util/rtl.js
diff options
context:
space:
mode:
authorbeatrix <beatrix.bitrot@gmail.com>2017-11-18 20:32:17 -0500
committerGitHub <noreply@github.com>2017-11-18 20:32:17 -0500
commitbcda3f85ce1473e9285299979a471525b2cd7034 (patch)
tree80c346945531fe17bdf94b70ecd206a07edd5258 /app/javascript/themes/glitch/util/rtl.js
parentdec960c828390466c8fa802ac30e68041a64bff6 (diff)
parent92cc79be7206534e8c9a9957cc89b5d0eb0bcfac (diff)
Merge pull request #226 from glitch-soc/glitch-theme
Glitch/Vanilla themes
Diffstat (limited to 'app/javascript/themes/glitch/util/rtl.js')
-rw-r--r--app/javascript/themes/glitch/util/rtl.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/app/javascript/themes/glitch/util/rtl.js b/app/javascript/themes/glitch/util/rtl.js
new file mode 100644
index 000000000..00870a15d
--- /dev/null
+++ b/app/javascript/themes/glitch/util/rtl.js
@@ -0,0 +1,31 @@
+// U+0590  to U+05FF  - Hebrew
+// U+0600  to U+06FF  - Arabic
+// U+0700  to U+074F  - Syriac
+// U+0750  to U+077F  - Arabic Supplement
+// U+0780  to U+07BF  - Thaana
+// U+07C0  to U+07FF  - N'Ko
+// U+0800  to U+083F  - Samaritan
+// U+08A0  to U+08FF  - Arabic Extended-A
+// U+FB1D  to U+FB4F  - Hebrew presentation forms
+// U+FB50  to U+FDFF  - Arabic presentation forms A
+// U+FE70  to U+FEFF  - Arabic presentation forms B
+
+const rtlChars = /[\u0590-\u083F]|[\u08A0-\u08FF]|[\uFB1D-\uFDFF]|[\uFE70-\uFEFF]/mg;
+
+export function isRtl(text) {
+  if (text.length === 0) {
+    return false;
+  }
+
+  text = text.replace(/(?:^|[^\/\w])@([a-z0-9_]+(@[a-z0-9\.\-]+)?)/ig, '');
+  text = text.replace(/(?:^|[^\/\w])#([\S]+)/ig, '');
+  text = text.replace(/\s+/g, '');
+
+  const matches = text.match(rtlChars);
+
+  if (!matches) {
+    return false;
+  }
+
+  return matches.length / text.length > 0.3;
+};