[bug] Check matchMedia for mobile view in DevTools; For bug 77576

This commit is contained in:
Sergey Konovalov
2025-12-07 17:45:21 +03:00
parent 8471f32bc4
commit 62bd36a7d8

View File

@ -61,11 +61,13 @@ function Preview(props) {
const {token} = await generateDocServerToken(config);
config.token = token;
if (
/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini|Macintosh/i.test(navigator.userAgent) &&
navigator.maxTouchPoints &&
navigator.maxTouchPoints > 1
) {
const userAgent = navigator.userAgent;
const isMobileUA = /Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(userAgent);
// iPadOS 13+ often requests desktop site (Macintosh UA) but has touch
const isIPad = /Macintosh/i.test(userAgent) && navigator.maxTouchPoints > 1;
const isTouchDevice = isMobileUA || isIPad || window.matchMedia?.('(pointer: coarse)').matches;
if (isTouchDevice) {
config.type = 'mobile';
}