Skip to content

Commit 4cc08cb

Browse files
committed
fix: cleanup resize listener
1 parent 8af45e2 commit 4cc08cb

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/contexts/MobileContext.tsx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createContext, useState } from "react"
1+
import { createContext, useEffect, useState } from "react"
22

33
export interface IMobileContext {
44
isMobile: boolean
@@ -16,10 +16,14 @@ export function MobileProvider({ ...p }: Props) {
1616
const [isMobile, setIsMobile] = useState(window.innerWidth < 768)
1717
const [width, setWidth] = useState(window.innerWidth)
1818

19-
window.addEventListener("resize", () => {
20-
setWidth(window.innerWidth)
21-
setIsMobile(window.innerWidth < 768)
22-
})
19+
useEffect(() => {
20+
const handleResize = () => {
21+
setWidth(window.innerWidth)
22+
setIsMobile(window.innerWidth < 768)
23+
}
24+
window.addEventListener("resize", handleResize)
25+
return () => window.removeEventListener("resize", handleResize)
26+
}, [])
2327

2428
return <MobileContext.Provider value={{ isMobile, width }} {...p} />
2529
}

0 commit comments

Comments
 (0)