Aller au contenu principal

ImportWizard

Wizard 3 étapes pour l'import de relevés bancaires CSV. Gère la détection automatique de format, l'aperçu des données, la sélection du compte cible et l'affichage du résultat d'import.

Source : src/components/import-wizard.tsx

Props

PropTypeDescription
accountsAccount[]Liste des comptes disponibles : { id, name, institution: { name } }[]
defaultAccountIdstring?Compte présélectionné (ignoré si absent de la liste)
<ImportWizard
accounts={accounts}
defaultAccountId={selectedAccountId}
/>

Étapes

Étape 1 — Upload

Zone de dépôt (drag & drop) ou sélection de fichier. Accepte uniquement .csv.

Dès qu'un fichier est sélectionné :

  • Le format est détecté via detectCsvFormat (lecture du contenu)
  • Les 5 premières lignes de données sont parsées pour l'aperçu

Étape 2 — Aperçu

Affiche :

  • Badge de format détecté (BOURSO_OPS, BOURSO_PEA, REVOLUT, CSV_TR, UNKNOWN)
  • Avertissement si format inconnu
  • Info spéciale PEA (snapshot uniquement, pas de transactions)
  • Tableau d'aperçu avec colonnes adaptées au format
  • Sélecteur de compte cible

Le bouton Importer est désactivé si le format est UNKNOWN ou si aucun compte n'est sélectionné.

Étape 3 — Résultat

En cas de succès : trois compteurs (transactions importées, doublons ignorés, snapshots créés).

En cas d'erreur : message d'erreur de l'action serveur.

Un bouton réinitialise le wizard pour importer un autre fichier.

Formats supportés

ValeurBanqueSéparateur
BOURSO_OPSBoursoBank Opérations;
BOURSO_PEABoursoBank PEA;
REVOLUTRevolut,
CSV_TRTrade Republic,

Accessibilité

  • Zone de dépôt accessible au clavier (role="button", tabIndex={0}, onKeyDown Enter)
  • aria-label explicite sur la zone de dépôt
  • Sélecteur de compte via <select> natif avec <label> lié

Voir aussi