Prechádzať zdrojové kódy

utils: handle userAgentData browser compatibility

Use runtime checks and minimal type assertion to safely handle the
userAgentData API which is not yet widely supported across browsers.
This maintains TypeScript type safety while ensuring the platform
detection works in both modern and legacy browsers.
Bruce MacDonald 5 mesiacov pred
rodič
commit
4fc1ccc268
1 zmenil súbory, kde vykonal 9 pridanie a 3 odobranie
  1. 9 3
      src/utils.ts

+ 9 - 3
src/utils.ts

@@ -93,9 +93,15 @@ const checkOk = async (response: Response): Promise<void> => {
  */
 function getPlatform(): string {
   if (typeof window !== 'undefined' && window.navigator) {
-const platform = 
-      window.navigator.platform || window.navigator.userAgentData?.platform || 'unknown'
-    return `${platform.toLowerCase()} Browser/${navigator.userAgent};`
+    // Need type assertion here since TypeScript doesn't know about userAgentData
+    const nav = navigator as any
+    if ('userAgentData' in nav && nav.userAgentData?.platform) {
+      return `${nav.userAgentData.platform.toLowerCase()} Browser/${navigator.userAgent};`
+    }
+    if (navigator.platform) {
+      return `${navigator.platform.toLowerCase()} Browser/${navigator.userAgent};`
+    }
+    return `unknown Browser/${navigator.userAgent};`
   } else if (typeof process !== 'undefined') {
     return `${process.arch} ${process.platform} Node.js/${process.version}`
   }