|
|
@@ -211,13 +211,22 @@ export default function Layout(props: ParentProps) {
|
|
|
|
|
|
onMount(() => {
|
|
|
const stop = () => setState("sizing", false)
|
|
|
+ const blur = () => reset()
|
|
|
+ const hide = () => {
|
|
|
+ if (document.visibilityState !== "hidden") return
|
|
|
+ reset()
|
|
|
+ }
|
|
|
window.addEventListener("pointerup", stop)
|
|
|
window.addEventListener("pointercancel", stop)
|
|
|
window.addEventListener("blur", stop)
|
|
|
+ window.addEventListener("blur", blur)
|
|
|
+ document.addEventListener("visibilitychange", hide)
|
|
|
onCleanup(() => {
|
|
|
window.removeEventListener("pointerup", stop)
|
|
|
window.removeEventListener("pointercancel", stop)
|
|
|
window.removeEventListener("blur", stop)
|
|
|
+ window.removeEventListener("blur", blur)
|
|
|
+ document.removeEventListener("visibilitychange", hide)
|
|
|
})
|
|
|
})
|
|
|
|
|
|
@@ -237,6 +246,12 @@ export default function Layout(props: ParentProps) {
|
|
|
navLeave.current = undefined
|
|
|
}
|
|
|
|
|
|
+ const reset = () => {
|
|
|
+ disarm()
|
|
|
+ setState("hoverSession", undefined)
|
|
|
+ setHoverProject(undefined)
|
|
|
+ }
|
|
|
+
|
|
|
const arm = () => {
|
|
|
if (layout.sidebar.opened()) return
|
|
|
if (state.hoverProject === undefined) return
|
|
|
@@ -305,8 +320,7 @@ export default function Layout(props: ParentProps) {
|
|
|
|
|
|
const clearSidebarHoverState = () => {
|
|
|
if (layout.sidebar.opened()) return
|
|
|
- setState("hoverSession", undefined)
|
|
|
- setHoverProject(undefined)
|
|
|
+ reset()
|
|
|
}
|
|
|
|
|
|
const navigateWithSidebarReset = (href: string) => {
|