aboutsummaryrefslogtreecommitdiff
path: root/app/src/web/assets/js/textarea_listener.ts
blob: 062f5bf6738ffc1768981bfaa6c5c36c6c02e3c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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);