anchorage_layer_simple/features/userwallet-global-action-bar-url-params.md
ncantu 5689693507 UserWallet: Multiple feature implementations and updates
**Motivations:**
- Implement BIP39 mnemonic import for identity creation
- Add password-based key protection for enhanced security
- Improve pairing workflow with QR code and URL display
- Migrate hash cache from LocalStorage to IndexedDB for better scalability
- Update signet-dashboard and mempool components

**Root causes:**
- N/A (feature implementations)

**Correctifs:**
- N/A (no bug fixes in this commit)

**Evolutions:**
- BIP39 mnemonic import: Support for 12/24 word English mnemonics with BIP32 derivation path m/44'/0'/0'/0/0
- Key protection: Password-based encryption of private keys at rest with unlock/lock functionality
- Pairing workflow: QR code and URL display for device pairing, form-based word exchange between devices
- IndexedDB migration: Hash cache moved from LocalStorage to IndexedDB to avoid size limitations
- Global action bar: URL parameter support for navigation
- Pairing connection: Enhanced pairing status management

**Pages affectées:**
- userwallet/src/utils/identity.ts
- userwallet/src/utils/keyProtection.ts
- userwallet/src/utils/sessionUnlockedKey.ts
- userwallet/src/utils/indexedDbStorage.ts
- userwallet/src/utils/cache.ts
- userwallet/src/utils/pairing.ts
- userwallet/src/components/UnlockScreen.tsx
- userwallet/src/components/PairingDisplayScreen.tsx
- userwallet/src/components/PairingSetupBlock.tsx
- userwallet/src/components/GlobalActionBar.tsx
- userwallet/src/components/HomeScreen.tsx
- userwallet/src/components/ImportIdentityScreen.tsx
- userwallet/src/components/DataExportImportScreen.tsx
- userwallet/src/hooks/useIdentity.ts
- userwallet/src/hooks/usePairingConnected.ts
- userwallet/src/services/syncService.ts
- userwallet/src/services/pairingConfirm.ts
- userwallet/src/App.tsx
- userwallet/package.json
- userwallet/docs/specs.md
- userwallet/docs/storage.md
- userwallet/docs/synthese.md
- signet-dashboard/public/*.html
- signet-dashboard/public/app.js
- signet-dashboard/public/styles.css
- mempool (submodule updates)
- hash_list.txt, hash_list_cache.txt, utxo_list.txt, utxo_list_cache.txt, fees_list.txt
- features/*.md (documentation files)
2026-01-26 10:23:34 +01:00

2.6 KiB
Raw Blame History

UserWallet Paramètres URL pour contrôler l'affichage des actions globales

Author: Équipe 4NK
Date: 2026-01-26

Objectif

Permettre de contrôler l'affichage des boutons "Supprimer" et "Afficher les mots de ma clé publique" via des paramètres d'URL pour adapter l'interface selon le contexte d'utilisation (usage normal vs iframe).

Impacts

  • Fonctionnels : Les boutons "Supprimer" et "Afficher les mots de ma clé publique" sont masqués par défaut dans un contexte iframe, mais peuvent être affichés via les paramètres d'URL ?showDelete=true et ?showWords=true. En usage normal (hors iframe), les boutons sont affichés par défaut.
  • Techniques : Détection automatique du contexte iframe et lecture des paramètres d'URL pour forcer l'affichage même en iframe.

Modifications

GlobalActionBar.tsx

  • Import de useSearchParams depuis react-router-dom
  • Détection du contexte iframe via window.self !== window.top
  • Lecture des paramètres d'URL showDelete et showWords
  • Logique d'affichage conditionnelle :
    • Par défaut : affichage des boutons (usage normal)
    • En iframe : masquage par défaut
    • Paramètres d'URL : forcer l'affichage même en iframe avec ?showDelete=true et/ou ?showWords=true

Flux utilisateur

  1. Usage normal (hors iframe) : Les boutons "Supprimer" et "Afficher les mots de ma clé publique" sont affichés par défaut.
  2. Usage iframe (par défaut) : Les boutons sont masqués pour une interface épurée.
  3. Usage iframe avec paramètres : Ajouter ?showDelete=true et/ou ?showWords=true dans l'URL pour forcer l'affichage des boutons correspondants.

Exemples d'utilisation

  • Iframe sans boutons : https://test.userwallet.4nkweb.com/ (boutons masqués)
  • Iframe avec bouton "Supprimer" : https://test.userwallet.4nkweb.com/?showDelete=true
  • Iframe avec bouton "Mots" : https://test.userwallet.4nkweb.com/?showWords=true
  • Iframe avec les deux boutons : https://test.userwallet.4nkweb.com/?showDelete=true&showWords=true

Modalités de déploiement

  • Rebuild de l'application userwallet
  • Déploiement des assets sur les environnements concernés

Modalités d'analyse

  • Vérifier l'affichage par défaut des boutons en usage normal (hors iframe)
  • Vérifier le masquage des boutons en iframe sans paramètres
  • Vérifier l'affichage forcé des boutons en iframe avec les paramètres d'URL appropriés
  • Tester les différentes combinaisons de paramètres (showDelete, showWords)
  • Vérifier que la détection d'iframe fonctionne correctement
  • Accessibilité (ARIA, contraste, clavier) maintenue pour tous les cas d'usage