Skip to content

PWA install prompt, share-target intake, and app-level idle relock #159

Description

@truthixify

Tier: S (1-2 days) | Type: ux

Context. The PWA installs but does not surface the install prompt, cannot receive stellar: URIs shared from other apps, and the app session stays unlocked forever on mobile. QRCodeModal.tsx already calls navigator.share (lines 41-59) for Receive's meta-address / stellar: URI variants with a clipboard fallback, so share-out is covered. The gap is share-IN and install / relock. KeyVault.ts has an idleTimeoutMs timer (lines 346-373) but it only locks the encrypted vault when the vault is unlocked; the whole app session has no relock, which this issue adds.

Scope.

  • beforeinstallprompt capture with a header "Install" affordance that hides after install.
  • Register as a Web Share Target for text/plain in the manifest so stellar: URIs pasted from other apps land on /send with the recipient pre-filled.
  • App-level auto-relock after 5 minutes of inactivity, unlocked via the passkey when present, otherwise a passphrase. Reuse KeyVault's existing idle timer as the trigger; extend it to relock the whole app session, not just the vault.

Acceptance.

  • Install prompt fires once, dismissed permanently across reloads
  • Share Target registration verified via chrome://web-app-internals
  • Shared stellar: URI pre-fills /send recipient
  • Idle relock triggers on the configured timeout across the whole app session

Files. public/manifest.webmanifest, src/components/Header.tsx, src/App.tsx, src/vault/KeyVault.ts, src/lib/idleLock.ts (new).

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programdemoAuto-created for Wave 8dripsFunded via Drips Networkhelp wantedExtra attention is neededmobileperfPerformance / optimizationstellar-waveAuto-created for Wave 8uxUser experiencewave-8Auto-created for Wave 8

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions