docs(audit): mark CloudFileBrowser as module in features/studio, update problemes identifies
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
5721862798
commit
d67c132c93
1 changed files with 3 additions and 3 deletions
|
|
@ -85,7 +85,7 @@ Les problèmes sont classés en **Bloquant**, **Amélioration** et **Perfectionn
|
|||
| ~~`GearView.tsx`~~ | ~~559~~ | **Refactorisé 2026-02-05** : module `gear-view/` avec `useGearView`, `GearViewToolbar`, `GearViewSkeleton` ; props pour stories. Stories : Default, Loading, Empty, Error, GearViewSkeleton. Re-export depuis `GearView.tsx`. |
|
||||
| ~~`CommentThread.tsx`~~ | ~~547~~ | **Refactorisé 2026-02-05** : module `comment-thread/` avec hooks et sous-composants (voir ci-dessous). |
|
||||
| ~~`LazyComponent.tsx`~~ | ~~505~~ | **Refactorisé 2026-02-05** : module `lazy-component/` avec `LazyErrorFallback`, `LazyErrorBoundary`, `createLazyComponent`, `lazyExports`. Stories : LazyErrorFallback (Default, WithRetry, NoError), LazyComponent (Default, Loading). Re-export depuis `LazyComponent.tsx`. |
|
||||
| `CloudFileBrowser.tsx` | 503 | Vue liste/grid, recherche, tri, filtres par tags, sélection, modales (metadata, watermark), détail fichier, navigation. |
|
||||
| ~~`CloudFileBrowser.tsx`~~ | ~~503~~ | **Module existant** : `features/studio/components/cloud-file-browser/` — orchestrateur CloudFileBrowser.tsx (~188 lignes), FileToolbar, FileTable, FileGrid, FileGridCard, FileTableRow, CloudFileBrowserSkeleton, types. Ancien fichier monolithe `components/studio/CloudFileBrowser.tsx` supprimé. |
|
||||
| ~~`Search.tsx`~~ | ~~494~~ | **Refactorisé 2026-02-05** : module `features/search/components/search/` avec hooks et sous-composants (voir ci-dessous). |
|
||||
| ~~`UploadModal.tsx`~~ | ~~486~~ | **Refactorisé 2026-02-05** : module `upload-modal/` avec `useUploadModal`, `UploadModalDropzone`, `UploadModalFileDisplay`, `UploadModalProgress`, `UploadModalErrorAlert`, `UploadModalMetadataForm`. Stories : Default, Open. Re-export depuis `UploadModal.tsx`. |
|
||||
| ~~`file-upload.tsx`~~ | ~~478~~ | **Refactorisé 2026-02-05** : module `components/ui/file-upload/` avec `useFileUpload`, `FileUploadDropzone`, `FileUploadErrorList`, `FileUploadFileList`. Stories : Default, Empty, ImagesOnly, MaxSize, Disabled, Error, StateSimulation. Point d’entrée `file-upload/index.ts`. |
|
||||
|
|
@ -96,13 +96,13 @@ Les problèmes sont classés en **Bloquant**, **Amélioration** et **Perfectionn
|
|||
|
||||
| Criticité | Constat | Détail |
|
||||
|-----------|--------|--------|
|
||||
| **Amélioration** | Trop de responsabilités dans un seul fichier | **CloudFileBrowser** : vue (list/grid), recherche, tri, filtres, tags, sélection, 2 modales, détail fichier, appels service. Difficile à tester unitairement et à faire évoluer (ex. ajouter un état “empty” ou “error” propre). |
|
||||
| **Amélioration** | Trop de responsabilités dans un seul fichier | Réduit : **CloudFileBrowser** est désormais un module (FileToolbar, FileTable, FileGrid, etc.) dans `features/studio/components/cloud-file-browser/`. |
|
||||
| **Amélioration** | Logique métier + UI mélangées | **CommentThread**, **ProfileForm**, **Search** : logique (appels API, état) et rendu (JSX) dans le même composant ; pas de découpage net en hooks + sous-composants. |
|
||||
| **Perfectionnement** | Réutilisabilité limitée | **GearView**, **ProfileView** : vues “pages” très spécifiques ; extraire des blocs (Header, Stats, List, Filters) permettrait des stories et des tests plus ciblés. |
|
||||
|
||||
### Recommandations
|
||||
|
||||
- **Découper CloudFileBrowser** : extraire `FileBrowserToolbar`, `FileBrowserGrid`, `FileBrowserList`, `FileTagFilter`, et un hook `useCloudFiles` (loading, error, data). Chaque bloc avec sa story (Default, Loading, Empty, Error).
|
||||
- **CloudFileBrowser** : déjà découpé dans `features/studio/components/cloud-file-browser/` (FileToolbar, FileTable, FileGrid, CloudFileBrowserSkeleton, etc.) ; ancien monolithe `components/studio/` supprimé.
|
||||
- **CommentThread (fait 2026-02-05)** : logique extraite dans `useCommentReplies`, `useCommentActions` ; rendu délégué à `CommentThreadHeader`, `CommentThreadContent`, `CommentThreadActions`, `CommentReplyForm`, `CommentRepliesList` ; `CommentThreadSkeleton` pour l’état Loading. Stories : Default, WithReplies, DeeplyNested, Edited, EmptyReplies, LoadingReplies, ReplyError. MSW : PUT `/api/v1/comments/:id` ajouté.
|
||||
- **ProfileForm (fait 2026-02-05)** : module `features/user/components/profile-form/` avec `useProfileForm`, `ProfileCompletionCard`, `ProfileFormSkeleton`, schéma zod dédié. Stories : Default, Loading, Error, ProfileFormSkeleton. Re-export depuis `ProfileForm.tsx`.
|
||||
- **ProfileView (fait 2026-02-05)** : module `components/views/profile-view/` avec `useProfileViewData` ; sous-composants `ProfileViewTrackCard`, `ProfileViewPlaylistCard`, `ProfileViewSidebar`, `ProfileViewOverview`, `ProfileViewTracksTab`, `ProfileViewPlaylistsTab`, `ProfileViewAboutTab`, `ProfileViewSkeleton`. Stories : Default, Loading, Error, ProfileViewSkeleton. Re-export depuis `ProfileView.tsx`.
|
||||
|
|
|
|||
Loading…
Reference in a new issue