Skip to content

release: v1.0.0-alpha.22 - #52

Merged
cativo23 merged 6 commits into
mainfrom
release/v1.0.0-alpha.22
Sep 29, 2026
Merged

cativo23 merged 6 commits into
mainfrom
release/v1.0.0-alpha.22

Conversation

@cativo23

Copy link
Copy Markdown
Owner

Fixed

  • Login link dead-click bug (hydration mismatch on the guest-nav v-if/v-else split) — see CHANGELOG.

Deploy notes

Same-day follow-up hotfix after v1.0.0-alpha.21.

…ismatch dead clicks

The header's guest-nav login link (and the two homepage CTA login links)
sit inside a v-if/v-else pair keyed on useSupabaseUser()'s user ref. If
the client's initial reactive value of `user` differs even briefly from
what SSR rendered (a timing artifact of the Supabase session check
resolving asynchronously on the client, vs. synchronously during SSR),
Vue detects a hydration mismatch on that whole nav subtree and discards
+ remounts it. Until that remount lands, the server-rendered anchor is
visually present but carries no Vue Router click binding — a click in
that window is silently swallowed (confirmed via a raw document-level
click listener: zero events reached the DOM at all for the affected
clicks, while unrelated buttons elsewhere on the page kept working).

Reproduced this live against production: identical coordinate clicks on
the same link succeeded roughly half the time, uncorrelated with how
long the page had been loaded — consistent with a race against an async
remount rather than a fixed hydration delay.

Rather than reworking useSupabaseUser()'s SSR/client parity (a much
larger, riskier change touching every user-gated element on the site),
marks these three /login NuxtLinks `external`, so Nuxt renders them as
plain anchors outside Vue Router's client-side interception. A plain
anchor is clickable the instant it's painted, regardless of hydration
state — it can't go inert.
fix(ui): force native navigation on login links (dead-click bug)
@cativo23
cativo23 merged commit 04f6245 into main Sep 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant