File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -26,4 +26,20 @@ describe('isMac', () => {
26
26
} ) ;
27
27
expect ( isMac ( ) ) . toBe ( false ) ;
28
28
} ) ;
29
+
30
+ it ( 'returns false when navigator agent is null' , ( ) => {
31
+ Object . defineProperty ( navigator , 'userAgent' , {
32
+ value : null ,
33
+ configurable : true
34
+ } ) ;
35
+ expect ( isMac ( ) ) . toBe ( false ) ;
36
+ } ) ;
37
+
38
+ it ( 'returns false when navigator agent is undefined' , ( ) => {
39
+ Object . defineProperty ( navigator , 'userAgent' , {
40
+ value : undefined ,
41
+ configurable : true
42
+ } ) ;
43
+ expect ( isMac ( ) ) . toBe ( false ) ;
44
+ } ) ;
29
45
} ) ;
Original file line number Diff line number Diff line change 1
- export const isMac = ( ) => navigator . userAgent . toLowerCase ( ) . indexOf ( 'mac' ) !== - 1 ; // eslint-disable-line
1
+ /**
2
+ * Checks if the user's OS is macOS based on the user agent string.
3
+ * This is the preferred method over navigator.platform, which is now deprecated:
4
+ * - see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform
5
+ */
6
+ export function isMac ( ) : boolean {
7
+ return typeof navigator ?. userAgent === 'string'
8
+ ? navigator . userAgent . toLowerCase ( ) . includes ( 'mac' )
9
+ : false ;
10
+ }
You can’t perform that action at this time.
0 commit comments