Skip to content

Commit

Permalink
🎨
Browse files Browse the repository at this point in the history
  • Loading branch information
syuilo committed Jan 2, 2023
1 parent a4a614e commit 8bc0aa3
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 23 deletions.
18 changes: 9 additions & 9 deletions packages/frontend/src/components/MkModal.vue
Expand Up @@ -63,17 +63,17 @@ let transformOrigin = $ref('center');
let showing = $ref(true);
let content = $ref<HTMLElement>();
const zIndex = os.claimZIndex(props.zPriority);
const type = $computed(() => {
if (props.preferType === 'auto') {
if (!defaultStore.state.disableDrawer && isTouchUsing && deviceKind === 'smartphone') {
return 'drawer';
} else {
return props.src != null ? 'popup' : 'dialog';
}
let type = $ref<ModalTypes>();
console.log(props.preferType, isTouchUsing, deviceKind);
if (props.preferType === 'auto') {
if (!defaultStore.state.disableDrawer && isTouchUsing && deviceKind === 'smartphone') {
type = 'drawer';
} else {
return props.preferType!;
type = props.src != null ? 'popup' : 'dialog';
}
});
} else {
type = props.preferType!;
}
let transitionName = $ref(defaultStore.state.animation ? (type === 'drawer') ? 'modal-drawer' : (type === 'popup') ? 'modal-popup' : 'modal' : '');
let transitionDuration = $ref(defaultStore.state.animation ? 200 : 0);
Expand Down
18 changes: 4 additions & 14 deletions packages/frontend/src/scripts/touch.ts
@@ -1,23 +1,13 @@
const isTouchSupported = 'maxTouchPoints' in navigator && navigator.maxTouchPoints > 0;
import { deviceKind } from '@/scripts/device-kind';

export let isTouchUsing = false;
const isTouchSupported = 'maxTouchPoints' in navigator && navigator.maxTouchPoints > 0;

export let isScreenTouching = false;
export let isTouchUsing = deviceKind === 'tablet' || deviceKind === 'smartphone';

if (isTouchSupported) {
if (isTouchSupported && !isTouchUsing) {
window.addEventListener('touchstart', () => {
// maxTouchPointsなどでの判定だけだと、「タッチ機能付きディスプレイを使っているがマウスでしか操作しない」場合にも
// タッチで使っていると判定されてしまうため、実際に一度でもタッチされたらtrueにする
isTouchUsing = true;

isScreenTouching = true;
}, { passive: true });

window.addEventListener('touchend', () => {
// 子要素のtouchstartイベントでstopPropagation()が呼ばれると親要素に伝搬されずタッチされたと判定されないため、
// touchendイベントでもtouchstartイベントと同様にtrueにする
isTouchUsing = true;

isScreenTouching = false;
}, { passive: true });
}

0 comments on commit 8bc0aa3

Please sign in to comment.