sharkey/packages/frontend/src/scripts/touch.ts

23 lines
889 B
TypeScript
Raw Normal View History

/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { ref } from 'vue';
2023-09-19 16:37:43 +09:00
import { deviceKind } from '@/scripts/device-kind.js';
2023-01-02 09:20:49 +09:00
const isTouchSupported = 'maxTouchPoints' in navigator && navigator.maxTouchPoints > 0;
2023-01-02 09:20:49 +09:00
export let isTouchUsing = deviceKind === 'tablet' || deviceKind === 'smartphone';
2023-01-02 09:20:49 +09:00
if (isTouchSupported && !isTouchUsing) {
window.addEventListener('touchstart', () => {
// maxTouchPointsなどでの判定だけだと、「タッチ機能付きディスプレイを使っているがマウスでしか操作しない」場合にも
// タッチで使っていると判定されてしまうため、実際に一度でもタッチされたらtrueにする
isTouchUsing = true;
}, { passive: true });
}
/** (MkHorizontalSwipe) 横スワイプ中か? */
export const isHorizontalSwipeSwiping = ref(false);