feat(ui): prompt before closing window if music is playing (#4899)
* feat(ui): prompt before closing window if music is playing - #4898 * simplify logic
This commit is contained in:
@@ -95,6 +95,19 @@ const Player = () => {
|
|||||||
}
|
}
|
||||||
}, [audioInstance, context, gainNode, playerState, gainInfo])
|
}, [audioInstance, context, gainNode, playerState, gainInfo])
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const handleBeforeUnload = (e) => {
|
||||||
|
// Check there's a current track and is actually playing/not paused
|
||||||
|
if (playerState.current?.uuid && audioInstance && !audioInstance.paused) {
|
||||||
|
e.preventDefault()
|
||||||
|
e.returnValue = '' // Chrome requires returnValue to be set
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('beforeunload', handleBeforeUnload)
|
||||||
|
return () => window.removeEventListener('beforeunload', handleBeforeUnload)
|
||||||
|
}, [playerState, audioInstance])
|
||||||
|
|
||||||
const defaultOptions = useMemo(
|
const defaultOptions = useMemo(
|
||||||
() => ({
|
() => ({
|
||||||
theme: playerTheme,
|
theme: playerTheme,
|
||||||
|
|||||||
Reference in New Issue
Block a user