story-research-zapwall/fixKnowledge/2025-12-23-optional-props-lint-types.md
2025-12-23 02:20:57 +01:00

1.7 KiB
Raw Blame History

Problème

Erreurs TypeScript exactOptionalPropertyTypes et avertissements ESLint max-lines-per-function sur les composants de sélection de séries (ArticleEditorForm, Profile, UserArticles).

Impacts

  • Blocage du tsc --noEmit et du lint, empêchant le déploiement.
  • Risque de régressions UI (sélection de série) si les props optionnelles sont mal typées.

Cause

Propagation de props optionnelles (seriesOptions, onSelectSeries, selectedSeriesId) sans inclure explicitement undefined dans les signatures avec exactOptionalPropertyTypes: true.

Root cause

Contrats de composants non alignés sur les exigences strictes TypeScript (exactOptionalPropertyTypes) et fonctions trop longues (>40 lignes) dans ArticleEditorForm et UserArticles.

Corrections

  • Typage explicite des props optionnelles avec | undefined et propagation conditionnelle des props.
  • Refactoring des fonctions longues : extraction des handlers (SeriesSelect) et découpage de createLayoutProps.

Modifications

  • components/ArticleEditor.tsx, components/ArticleEditorForm.tsx, components/ProfileArticlesSection.tsx, components/ProfileSeriesBlock.tsx, components/SeriesSection.tsx, components/SeriesList.tsx, components/SeriesCard.tsx, components/UserArticles.tsx, components/UserArticlesList.tsx, components/ProfileView.tsx.
  • Ajustements de typage et réduction des fonctions >40 lignes.

Modalités de déploiement

Pas daction spécifique : lint et type-check passent (npm run lint, npm run type-check). Déployer via la pipeline habituelle.

Modalités d'analyse

  • Vérifier npm run lint et npm run type-check.
  • Tester la sélection/filtrage de série dans léditeur darticles et sur la page profil (navigation série).