0497aa33c9
When a user tapped "Open Signer App", the dialog previously stayed frozen on the same screen — same button, same copy-URI fallback, no feedback — until the login either succeeded (and the dialog dismissed) or timed out after two minutes. With slow or flaky signers (Amber's current listening-REQ bug being the immediate trigger, but any NIP-46 signer that takes more than a second or two to respond hits the same hole) this looked indistinguishable from a hang. Users retapped the button, closed the dialog, gave up. Now the dialog swaps the QR / Open Signer App area for a centered spinner with a live status line as the handshake advances: - "Waiting for signer connection…" while the signer app has the user and we're listening on kind 24133 for the connect-ack. - "Getting public key…" once the connect-ack arrives and we're issuing the NIP-46 get_public_key RPC. On mobile the swap happens synchronously when the user taps "Open Signer App" so they see the progress state the moment they return from the signer — this is the most important window, since that's exactly when the original UI left them staring at a button they were worried they needed to re-tap. On desktop the QR stays visible through the awaiting-connect phase (they may still be scanning with a different device) and only swaps in once the signer has acknowledged. The progress view includes a Cancel link (primary color, matches the "Create account" affordance) that aborts the in-flight subscription and regenerates fresh connect params — equivalent to the existing Retry path, but reachable while the handshake is live instead of only after a failure. The handshake phases are surfaced via the new `onStatus` callback on `NLogin.fromNostrConnect` in @nostrify/react 0.6.0. Bumps @nostrify/react to ^0.6.0 and @nostrify/nostrify / @nostrify/types to their matching versions (^0.52.0 / ^0.37.0) to avoid duplicate nested package copies that would otherwise split type identity. Incidental cleanup while editing the dialog: the Copy URI button and the "Tap to open your signer app" / "Scan with your signer app" status lines are removed. The primary Open Signer App button is self-explanatory on mobile, and the QR on desktop doesn't need a caption.