Skip to content

Logout leaves databrowser blank/stale until manual reload #627

@bourgeoa

Description

@bourgeoa

Summary

After logout, the databrowser UI can end up blank or stale and does not reliably recover until a manual browser reload. This appears to be a client lifecycle issue in the current solid-panes/mashlib integration, not a server-specific auth failure.

Expected behavior

On logout (and similarly login / sessionRestore), the client should consistently re-render from current URL state without requiring a manual reload.

Actual behavior

Header/auth state updates, but the main databrowser view is not always reinitialized/rerendered. In practice, users sometimes need F5 to get the normal outline/dashboard view back.

Environment / observed on

  • mashlib: 2.2.0
  • Server tested: JavaScriptSolidServer (JSS) with mashlib CDN mode
  • Also compared with Pivot server behavior (different hosting model, static assets), which may mask this by effectively reloading/reinitializing in its flow.

Why this seems client-side

Current flows react to auth events (header/dashboard updates), but there is no guaranteed “auth transition -> rerender current subject” path equivalent to a full databrowser bootstrap.

Symptoms suggest:

  • logout triggers partial UI updates (header/menu/dashboard close),
  • but not a deterministic re-render/init of main subject view.

Proposal

Create a single auth-transition handler in client code (solid-panes/mashlib) used for:

  • authSession.events.on('login', ...)
  • authSession.events.on('logout', ...)
  • authSession.events.on('sessionRestore', ...)

Handler should:

  1. await authn.checkUser()
  2. reset/close transient UI state (dashboard/menu if needed)
  3. re-render current URL subject (or re-run equivalent of initial databrowser render path)
  4. avoid requiring page reload

Acceptance criteria

  1. Logout does not require manual browser reload to restore a usable databrowser view.
  2. Login/sessionRestore behave consistently with logout transition handling.
  3. Works across hosting styles:
    • static databrowser asset hosting (e.g., Pivot)
    • server-generated databrowser HTML wrappers (e.g., JSS)

Notes

As a temporary server-side mitigation, forcing location.reload() on logout works, but this should not be the long-term fix. The robust fix should live in the client lifecycle so behavior is server-agnostic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions