Path: blob/master/src/packages/next/components/support/browser-info.ts
1449 views
declare var navigator;12export default function browserInfo(): {3userAgent?: string;4browser:5| "chrome"6| "firefox"7| "safari"8| "ios"9| "ipados"10| "other"11| "node";12context?: string; // could get filled in later by caller with some extra info.13} {14const userAgent = navigator?.userAgent;15if (!userAgent) {16return { userAgent, browser: "node" };17}1819let browser;20let useragent = userAgent.toLowerCase();21if (/chrom(e|ium)/.test(useragent)) {22browser = "chrome";23} else if (useragent.includes("firefox")) {24browser = "firefox";25} else if (26useragent.match(/Mac/) &&27navigator.maxTouchPoints &&28navigator.maxTouchPoints > 229) {30browser = "ipados";31} else if (useragent.match(/iPhone|iPod/i)) {32browser = "ios";33} else if (useragent.includes("safari")) {34browser = "safari";35} else {36browser = "other";37}38return { userAgent, browser };39}404142