diff options
| author | Adam Soltys <[email protected]> | 2026-08-02 23:26:38 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-08-02 23:26:38 -0700 |
| commit | 02d60eb824cad0b8c09cb5685a6c2dbe02e16c4f (patch) | |
| tree | 9c3637c21783bf55ce8d3d3aa6de4cd47c6abb59 /src/features | |
| parent | 70b02f00c63ba6f6cae939a5ebdedac6e3552eb6 (diff) | |
| download | coinosv3-02d60eb824cad0b8c09cb5685a6c2dbe02e16c4f.tar.gz coinosv3-02d60eb824cad0b8c09cb5685a6c2dbe02e16c4f.zip | |
Tab carousel, login avatar fix, signer callback hint
Tab changes no longer flash the whole page: only the content pane below
the tab strip slides sideways with a soft cross-fade — swipe direction
when a gesture caused it, index order for taps — while the balance card
and strip stay planted. Full-page entrances remain for real page
changes (settings, chat, profile, takeovers).
After a nostr sign-in the header briefly wore the wallet key's face:
nostrLoginIdentity now reports a just-connected live signer immediately
instead of waiting for the persisted link that only lands after the
wallet opens.
The nostrconnect URI carries a callbackUrl hint (NIP-55 style) so
signer apps that honor it can bounce back to the PWA after approval —
apps that don't will still find the session signed in when the user
returns, since the handshake completes over the relay in the
background.
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
Diffstat (limited to 'src/features')
| -rw-r--r-- | src/features/nostrlogin.js | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/features/nostrlogin.js b/src/features/nostrlogin.js index 6b55bbf..35db691 100644 --- a/src/features/nostrlogin.js +++ b/src/features/nostrlogin.js @@ -241,6 +241,10 @@ export function nostrLoginFeature(ctx) { // The nostr identity this session is logged in as, for features that // should speak as the user (the payment address defaults to this npub). nostrLoginIdentity() { + // A just-connected signer counts immediately — the persisted link lands + // only after the wallet opens, and the header avatar shouldn't show the + // wallet key's face in the gap. + if (live) return { pubkey: live.pubkey, npub: npubOf(live.pubkey), signer: live }; const st = load(); if (!st.pubkey) return null; return { pubkey: st.pubkey, npub: npubOf(st.pubkey), signer: live }; |
