8.2 KiB
Reste à faire sur le site
Date : 2025-01-27 Auteur : Équipe 4NK Dernière mise à jour : 2025-01-27 (Amélioration modal paiement + Recherche avec suggestions + Filtres persistants + Navigation clavier complète + ARIA amélioré + Messages d'erreur actionnables)
Migration des composants UI
Voir docs/migration-status.md pour la liste complète des composants migrés et restants.
État actuel : ✅ La plupart des composants principaux ont été migrés vers les composants UI réutilisables.
Composants restants (priorité moyenne)
- Uploads de fichiers - Les labels d'upload utilisent encore des
spanavec styles inline car ils nécessitent une structure HTML spécifique (<label>+<input type="file">caché) :ImageUploadField.tsx- Déjà partiellement migré avec Button pour RemoveButtonMarkdownEditor.tsx- Label d'upload de médiamarkdownEditorTwoColumns/MarkdownEditorTwoColumns.tsx- ToolbarUploadButtonmarkdownEditorTwoColumns/PagesManager.tsx- PageImageUploadButton
Note : Ces éléments nécessitent une structure HTML spécifique et ne peuvent pas être directement migrés vers Button. Une solution serait de créer un composant FileUploadButton spécialisé si nécessaire.
Améliorations UX documentées
Voir features/ux-improvements.md pour la liste complète des améliorations UX proposées.
Priorité haute
-
✅ Skeleton loaders - Implémenté
- Remplacé les messages "Loading..." par des skeleton loaders dans :
- Liste d'articles (
ArticlesList.tsx) - Cartes d'auteurs (
AuthorsList.tsx) - Articles utilisateur (
UserArticlesList.tsx) - Page auteur (
AuthorPageContent.tsx) - Formulaire de présentation (
AuthorPresentationEditor.tsx) - Contenu markdown (
DocsContent.tsx) - Gauge de financement (
FundingGauge.tsx)
- Liste d'articles (
- Animation subtile (pulse) pour indiquer le chargement
- Remplacé les messages "Loading..." par des skeleton loaders dans :
-
✅ Toast notifications - Implémenté
- Système de gestion des toasts créé (
ToastContainer.tsxavecToastProvideretuseToasthook) - Toasts de succès intégrés :
- Après déblocage réussi d'un article (
ArticleCard.tsx) - Après publication réussie (
ArticleEditor.tsx) - Après copie d'invoice (
PaymentModal.tsx) - Après initiation du paiement avec Alby (
PaymentModal.tsx)
- Après déblocage réussi d'un article (
- Toasts avec variants (success, info, warning, error), durée configurable, fermeture automatique et manuelle
- Accessibilité :
role="alert"etaria-live="polite"pour les screen readers
- Système de gestion des toasts créé (
-
✅ Indicateur visuel pour contenu débloqué - Implémenté
- Badge "Débloqué" avec icône de cadenas ouvert dans le header de l'article (
ArticleCard.tsx) - Bordure distinctive (border-neon-green/40) et glow vert (shadow-glow-green) sur les cartes d'articles débloqués
- Accessibilité :
aria-labelsur le badge pour les screen readers
- Badge "Débloqué" avec icône de cadenas ouvert dans le header de l'article (
-
✅ Raccourcis clavier de base - Implémenté
/: Focus automatique sur la barre de recherche (détection viarole="search")Esc: Fermeture des modals et overlays :- Déjà implémenté pour les modals (
Modal.tsx) et le menu mobile (MobileMenu.tsx) - Ajouté pour
NotificationPaneletCreateSeriesModalView
- Déjà implémenté pour les modals (
Ctrl/Cmd + K: Ouvrir une recherche rapide (command palette) - À implémenter
-
✅ Amélioration de la modal de paiement - Implémenté
- Bouton "Payer avec Alby" en priorité (variant "success", taille "large", plus visible)
- Auto-détection d'Alby avec vérification périodique
- Instructions étape par étape affichées conditionnellement selon la présence d'Alby
- QR code amélioré (taille 300px, fond blanc, bordure cyan avec glow)
- Compte à rebours plus visible (Badge avec animation pulse si < 60s)
Priorité moyenne
-
✅ Recherche améliorée avec suggestions - Implémenté
- Autocomplétion basée sur les titres d'articles (5 suggestions max)
- Suggestions d'auteurs (3 suggestions max)
- Historique de recherche récente (5 dernières recherches, stocké dans IndexedDB)
-
✅ Filtres persistants - Implémenté
- Sauvegarder les préférences de filtres dans IndexedDB (service
lib/filterPreferences.ts) - Restaurer les filtres au retour sur la page (chargement automatique dans
useHomeState()) - Sauvegarde automatique à chaque modification des filtres
- Sauvegarder les préférences de filtres dans IndexedDB (service
-
✅ Navigation clavier complète - Implémenté
- Tab order logique (IDs ajoutés pour les sections principales)
- Navigation par flèches dans les listes (hook
useArrowNavigationavec support ArrowUp/Down/Home/End) - Skip links pour navigation rapide (composant
SkipLinksavec liens vers main-content, filters-section, articles-section)
-
✅ ARIA amélioré - Implémenté
- Labels ARIA pour tous les boutons iconiques (liens dans PageHeader, KeyIndicator, NotificationBadgeButton, AuthorFilterButton, ClearButton, Toast close button)
- Régions ARIA (
role="navigation"pour le header,role="main"pour le contenu principal,role="complementary"pour les filtres,role="contentinfo"pour le footer,role="tablist"pour CategoryTabs) - Annonces screen reader (
aria-live="polite"dans ToastContainer et Toast,role="alert"pour les toasts)
-
✅ Messages d'erreur actionnables - Implémenté
- Messages clairs avec explication (système de classification des erreurs dans
lib/errorClassification.ts) - Actions de récupération (bouton "Réessayer", "Vérifier la connexion", "Voir la documentation")
- Suggestions de solutions contextuelles selon le type d'erreur (réseau, paiement, validation, chargement)
- Composant
ErrorStateamélioré avec support des actions de récupération - Intégration dans
ArticlesList,AuthorsList, etPaymentModal
- Messages clairs avec explication (système de classification des erreurs dans
Priorité basse
- Mode lecture
- Partage et engagement
- Guide de première utilisation
- Prévisualisation avant publication
- Chargement progressif avancé
Améliorations UI documentées
Voir features/ui-improvements.md pour la liste complète des améliorations UI proposées.
État actuel : ✅ Les composants UI réutilisables ont été créés et la plupart des composants ont été migrés.
Corrections de cohérence restantes
- Audit des couleurs : Identifier tous les usages de couleurs non-thème et remplacer par les couleurs du design system (cyber/neon)
- Cohérence des états : États hover, focus, disabled, actifs/selected uniformes
- Typographie : Système de tailles et poids cohérents
- Espacement : Utiliser l'échelle Tailwind de manière cohérente
Améliorations visuelles
- Background grid : Utiliser
bg-cyber-gridsur certains containers (optionnel) - Gradients : Gradients subtils pour certains backgrounds
- Shadows et glows : Utiliser
shadow-glow-cyanetshadow-glow-greende manière cohérente
Infrastructure nécessaire
Voir docs/remaining-tasks.md pour les détails.
Transferts Lightning automatiques
État actuel : Les transferts sont loggés dans lib/automaticTransfer.ts mais nécessitent un nœud Lightning pour être exécutés automatiquement.
À implémenter :
- Configuration nœud Lightning de la plateforme
- API pour créer et payer des invoices Lightning
- Queue de transferts pour gestion asynchrone
- Retry en cas d'échec
- Monitoring et alertes
Optimisations
- Performance : À évaluer après migration complète
- Accessibilité : Vérification complète après migration (contraste, focus, ARIA)
- SEO : À évaluer si nécessaire
Tests
- Tests unitaires : À définir selon la stratégie du projet
- Tests d'intégration : À définir selon la stratégie du projet
- Tests manuels : À effectuer après chaque migration
Documentation
- ✅ Documentation des composants UI créés
- ✅ Documentation de l'état de migration
- ⏳ Documentation des améliorations UX (en cours)
- ⏳ Documentation des améliorations UI (en cours)
Déploiement
Le site peut être déployé en utilisant les scripts disponibles :
deploy.sh: Déploiement initial completupdate-from-git.sh: Mise à jour depuis Git localupdate-remote-git.sh: Mise à jour via Git sur le serveur
Note : Le déploiement nécessite une validation explicite avant exécution.