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

53 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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