diff --git a/neode-ui/src/composables/useControllerNav.ts b/neode-ui/src/composables/useControllerNav.ts index 03b799e7..90fa4e29 100644 --- a/neode-ui/src/composables/useControllerNav.ts +++ b/neode-ui/src/composables/useControllerNav.ts @@ -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 }