From b3ef5ac929d861fd3a320c1037e70b1754e8a6e9 Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 18 Sep 2023 19:24:22 -0400 Subject: [PATCH 1/2] Make touchscreen detection more robust MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Empirically, Chrome on Android can end up not matching (hover: none), but still matching (pointer: coarse). 😕 --- src/Modal.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Modal.tsx b/src/Modal.tsx index 9fe68122..f2464b95 100644 --- a/src/Modal.tsx +++ b/src/Modal.tsx @@ -67,7 +67,7 @@ export function Modal({ ...rest }: ModalProps) { const { t } = useTranslation(); - const touchscreen = useMediaQuery("(hover: none)"); + const touchscreen = useMediaQuery("(hover: none) or (pointer: coarse)"); const onOpenChange = useCallback( (open: boolean) => { if (!open) onDismiss?.(); From d1c9c4b331f543ca0a6c7ee133da14b6d27cfe6f Mon Sep 17 00:00:00 2001 From: Robin Date: Tue, 19 Sep 2023 07:04:43 -0400 Subject: [PATCH 2/2] Add comment --- src/Modal.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Modal.tsx b/src/Modal.tsx index f2464b95..b644abe4 100644 --- a/src/Modal.tsx +++ b/src/Modal.tsx @@ -67,6 +67,8 @@ export function Modal({ ...rest }: ModalProps) { const { t } = useTranslation(); + // Empirically, Chrome on Android can end up not matching (hover: none), but + // still matching (pointer: coarse) :/ const touchscreen = useMediaQuery("(hover: none) or (pointer: coarse)"); const onOpenChange = useCallback( (open: boolean) => {