🐛(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
parent b01a46b345
commit 46a4955fe0
+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
}