🐛(frontend) drop resize listener in useIsMobileBrowser

`isMobileBrowser()` only reads `navigator.userAgent`, which does
not change during the lifetime of the document, so the previous
`resize` listener never had anything meaningful to update.

It did, however, dispatch `setIsMobile` on components rendered into
a Document Picture-in-Picture window (e.g. the reactions toolbar).
When the PiP window had already been closed, Firefox threw
"can't access dead object".

Compute the value once and skip the listener entirely.

Fix 019cb315-d827-73f2-b1cc-74e4dd71e982
This commit is contained in:
lebaudantoine
2026-08-06 18:52:27 +02:00
committed by aleb_the_flash
parent 134d9a188f
commit d810c9e0de
+2 -14
View File
@@ -1,20 +1,8 @@
import { isMobileBrowser } from '@livekit/components-core'
import { useEffect, useState } from 'react'
import { useState } from 'react'
export const useIsMobile = () => {
const [isMobile, setIsMobile] = useState(isMobileBrowser())
useEffect(() => {
const handleResize = () => {
setIsMobile(isMobileBrowser())
}
window.addEventListener('resize', handleResize)
return () => {
window.removeEventListener('resize', handleResize)
}
}, [])
const [isMobile] = useState(() => isMobileBrowser())
return isMobile
}