/** * Estado global do modal de login. * * Quando o middleware `auth` bloqueia uma rota, ele chama `open(toPath)` — * o modal abre e, ao submeter, redireciona o usuário pra `toPath` após o * fluxo Keycloak completar. * * `useState` garante SSR-safety: state separado por request no server, * singleton no client. */ export function useLoginModal() { const isOpen = useState('loginModal:isOpen', () => false) const returnTo = useState('loginModal:returnTo', () => null) function open(path?: string | null) { returnTo.value = path ?? null isOpen.value = true } function close() { isOpen.value = false returnTo.value = null } return { isOpen, returnTo, open, close } }