protected bindTouchEvents()

in share/src/components/GameButtons.tsx [165:206]


    protected bindTouchEvents(div: HTMLElement) {
        let touchIdentifier: number | undefined;

        div.addEventListener("touchend", ev => {
            if (touchIdentifier) {
                const touch = getTouch(ev, touchIdentifier);

                if (touch) {
                    this.clearButtonPresses()
                    ev.preventDefault();
                }
            }
            touchIdentifier = undefined;
        });

        div.addEventListener("touchstart", ev => {
            touchIdentifier = ev.changedTouches[0].identifier;
            this.updateButtonGesture(ev.changedTouches[0].clientX, ev.changedTouches[0].clientY);
        });

        div.addEventListener("touchmove", ev => {
            if (touchIdentifier) {
                const touch = getTouch(ev, touchIdentifier);

                if (touch) {
                    this.updateButtonGesture(touch.clientX, touch.clientY);
                    ev.preventDefault();
                }
            }
        });

        div.addEventListener("touchcancel", ev => {
            if (touchIdentifier) {
                const touch = getTouch(ev, touchIdentifier);

                if (touch) {
                    this.clearButtonPresses();
                }
            }
            touchIdentifier = undefined;
        });
    }