Skip to content

Commit e690ecd

Browse files
committed
Address ssr error in use-mobile hook
This addresses the error: SSR ERROR window is not defined Source: hooks/use-mobile.ts:5:13
1 parent 97f3ad3 commit e690ecd

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

app/frontend/hooks/use-mobile.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,27 @@ import { useSyncExternalStore } from "react"
22

33
const MOBILE_BREAKPOINT = 768
44

5-
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
5+
const mql =
6+
typeof window !== "undefined"
7+
? window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
8+
: null
69

710
function mediaQueryListener(callback: (event: MediaQueryListEvent) => void) {
8-
mql.addEventListener("change", callback)
11+
mql?.addEventListener("change", callback)
912

1013
return () => {
11-
mql.removeEventListener("change", callback)
14+
mql?.removeEventListener("change", callback)
1215
}
1316
}
1417

1518
function isSmallerThanBreakpoint() {
16-
return mql.matches
19+
return mql!.matches
1720
}
1821

1922
export function useIsMobile() {
20-
return useSyncExternalStore(mediaQueryListener, isSmallerThanBreakpoint)
23+
return useSyncExternalStore(
24+
mediaQueryListener,
25+
isSmallerThanBreakpoint,
26+
() => false,
27+
)
2128
}

0 commit comments

Comments
 (0)