Skip to content

Commit f796c6c

Browse files
committed
fix: make dfts-helper browser info utility SSR compatible
1 parent a703ca4 commit f796c6c

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

libs/dfts-helper/src/lib/helper/browser.ts

+15-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@ import { st_isAvailable } from './storage/common';
22

33
export type BrowserInfo = ReturnType<typeof i_complete>;
44

5-
export const i_screenSize = `${screen.width ?? ''} x ${screen.height ?? ''}`;
5+
export function i_screenSize(): string {
6+
if (typeof window === 'undefined') {
7+
return '';
8+
}
9+
return `${window?.screen?.width ?? ''} x ${window?.screen?.height ?? ''}`;
10+
}
611

712
export const i_cookieEnabled = () => {
813
let cookieEnabled = navigator.cookieEnabled;
@@ -14,7 +19,12 @@ export const i_cookieEnabled = () => {
1419
return cookieEnabled;
1520
};
1621

17-
export const i_mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(navigator.appVersion);
22+
export function i_mobile(): boolean {
23+
if (typeof window === 'undefined') {
24+
return false;
25+
}
26+
return /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(navigator.appVersion);
27+
}
1828

1929
/**
2030
* @return {screenSize: string, name: string, version: string, majorVersion: number, mobile: boolean, os: string, osVersion: string, cookies: boolean, localStorage: boolean}
@@ -36,7 +46,7 @@ export const i_complete = (): {
3646
const nAgt = navigator.userAgent;
3747
let browser = 'Netscape';
3848
let version = '4.0';
39-
let majorVersion = 4;
49+
let majorVersion: number;
4050
let nameOffset, verOffset, ix;
4151

4252
// Opera
@@ -177,11 +187,11 @@ export const i_complete = (): {
177187
}
178188

179189
return {
180-
screenSize: i_screenSize,
190+
screenSize: i_screenSize(),
181191
name: browser,
182192
version: version,
183193
majorVersion: majorVersion,
184-
mobile: i_mobile,
194+
mobile: i_mobile(),
185195
os: os,
186196
osVersion: osVersion,
187197
cookies: i_cookieEnabled(),

0 commit comments

Comments
 (0)