fix: sidebar Right arrow reliably focuses first app container
Some checks failed
Build Archipelago ISO (dev) / build-iso (push) Has been cancelled
Some checks failed
Build Archipelago ISO (dev) / build-iso (push) Has been cancelled
- Only recall container elements (not nav bar buttons) from focus memory - Retry after 200ms when containers aren't rendered yet (async route) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -408,9 +408,20 @@ export function useControllerNav(containerRef?: { value: HTMLElement | null }) {
|
||||
// Jump to first container in main
|
||||
rememberFocus('sidebar', activeEl)
|
||||
const remembered = recallFocus('main')
|
||||
// Only use remembered if it's a container (not a nav bar button)
|
||||
const target = (remembered && isContainer(remembered)) ? remembered : null
|
||||
const containers = getContainers()
|
||||
const target = remembered ?? containers[0]
|
||||
if (target) focusEl(target)
|
||||
const dest = target ?? containers[0]
|
||||
if (dest) {
|
||||
focusEl(dest)
|
||||
} else {
|
||||
// Containers may not be rendered yet (async load after route change)
|
||||
// Retry after a short delay
|
||||
setTimeout(() => {
|
||||
const retryContainers = getContainers()
|
||||
if (retryContainers[0]) focusEl(retryContainers[0])
|
||||
}, 200)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user