aboutsummaryrefslogtreecommitdiff
path: root/app/src/web/assets/js/textarea_listener.ts
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2019-02-05 23:16:29 -0500
committerGitHub <noreply@github.com>2019-02-05 23:16:29 -0500
commit8e3bfc168009c8682c4f6191d655f3ca10ae9f21 (patch)
treecf8419a06e193c08622ead5e6854b995a5eeba77 /app/src/web/assets/js/textarea_listener.ts
parent83fb36f666fbb934b74b5f763b8ffb2e56ca7761 (diff)
parentddfc310fde5f50ba52ef930287449c2e08faaca8 (diff)
downloadfrost-8e3bfc168009c8682c4f6191d655f3ca10ae9f21.tar.gz
frost-8e3bfc168009c8682c4f6191d655f3ca10ae9f21.tar.bz2
frost-8e3bfc168009c8682c4f6191d655f3ca10ae9f21.zip
Merge pull request #1334 from AllanWang/fix/offline-crash
Fix/offline crash
Diffstat (limited to 'app/src/web/assets/js/textarea_listener.ts')
-rw-r--r--app/src/web/assets/js/textarea_listener.ts31
1 files changed, 31 insertions, 0 deletions
diff --git a/app/src/web/assets/js/textarea_listener.ts b/app/src/web/assets/js/textarea_listener.ts
new file mode 100644
index 00000000..062f5bf6
--- /dev/null
+++ b/app/src/web/assets/js/textarea_listener.ts
@@ -0,0 +1,31 @@
+/*
+ * focus listener for textareas
+ * since swipe to refresh is quite sensitive, we will disable it
+ * when we detect a user typing
+ * note that this extends passed having a keyboard opened,
+ * as a user may still be reviewing his/her post
+ * swiping should automatically be reset on refresh
+ */
+(function () {
+ const _frostFocus = (e: Event) => {
+ const element = e.target || e.srcElement;
+ if (!(element instanceof Element)) {
+ return
+ }
+ console.log(`FrostJSI focus, ${element.tagName}`);
+ if (element.tagName === 'TEXTAREA') {
+ Frost.disableSwipeRefresh(true);
+ }
+ };
+
+ const _frostBlur = (e: Event) => {
+ const element = e.target || e.srcElement;
+ if (!(element instanceof Element)) {
+ return
+ }
+ console.log(`FrostJSI blur, ${element.tagName}`);
+ Frost.disableSwipeRefresh(false);
+ };
+ document.addEventListener("focus", _frostFocus, true);
+ document.addEventListener("blur", _frostBlur, true);
+}).call(undefined);