# Analyse des Dépendances - Résultats ## 📊 Dépendances Analysées ### ✅ Dépendances Utilisées (À Garder) #### Core Dependencies - `react`, `react-dom`: ✅ Utilisés partout (500+ fichiers) - `react-router-dom`: ✅ Utilisé partout (194 fichiers) - `axios`: ✅ Utilisé dans tous les services API - `zustand`: ✅ Utilisé pour le state management - `@tanstack/react-query`: ✅ Utilisé pour le cache et les requêtes - `@tanstack/react-virtual`: ✅ Utilisé dans VirtualizedList - `lucide-react`: ✅ Utilisé dans 238 fichiers (imports optimisés) - `date-fns`: ✅ Utilisé pour les dates - `zod`: ✅ Utilisé pour la validation - `dompurify`: ✅ Utilisé pour la sanitization - `react-hook-form`: ✅ Utilisé pour les formulaires - `clsx` + `tailwind-merge`: ✅ Utilisé dans `utils.ts` pour `cn()` #### UI & Interaction - `react-dropzone`: ✅ Utilisé pour les uploads - `@dnd-kit/*`: ⚠️ À vérifier si drag-and-drop est utilisé activement - `hls.js`: ⚠️ À vérifier si streaming vidéo est utilisé activement #### Notifications - `react-hot-toast`: ✅ Utilisé dans 545 fichiers (très utilisé) - `useToast` hook custom: ✅ Utilisé également #### Internationalization - `i18next`, `react-i18next`: ✅ Utilisé pour les traductions - `i18next-browser-languagedetector`: ✅ Utilisé pour détecter la langue ### ✅ Dépendances Vérifiées et Utilisées #### `immer` (Nécessaire) - Utilisé dans: `chatStore.ts` avec `zustand/middleware/immer` - **Statut**: ✅ **Nécessaire** - Utilisé pour les updates immutables dans Zustand store - **Action**: Garder #### `@dnd-kit/*` (Drag and Drop) - Utilisé dans: `PlaylistTrackList.tsx` (drag-and-drop des pistes dans les playlists) - **Statut**: ✅ **Nécessaire** - Fonctionnalité drag-and-drop active - **Action**: Garder #### `hls.js` (Streaming Vidéo) - Utilisé dans: `hlsService.ts`, `HLSPlayer.tsx`, `useHLSStream.ts` (6 fichiers) - **Statut**: ✅ **Nécessaire** - Streaming HLS actif - **Action**: Garder ### 🔍 Dépendances "Extraneous" (Transitives) Les dépendances suivantes sont marquées comme "extraneous" mais sont probablement des dépendances transitives de Radix UI ou autres: - `@floating-ui/*`: Dépendances transitives - `@radix-ui/*`: Dépendances transitives **Action**: Ne pas supprimer, ce sont des dépendances transitives nécessaires. ## 📈 Recommandations ### Priorité Haute 1. ✅ **Garder** `react-hot-toast` (très utilisé) 2. ⚠️ **Vérifier** `immer` - Si seulement 2 fichiers, considérer suppression 3. ⚠️ **Vérifier** `@dnd-kit/*` - Si drag-and-drop non utilisé, supprimer ### Priorité Moyenne 1. ⚠️ **Vérifier** `hls.js` - Si streaming HLS non utilisé, supprimer 2. ✅ **Garder** toutes les autres dépendances (utilisées activement) ## 🔧 Actions à Prendre ### 1. Vérifier `immer` ```bash # Chercher tous les usages grep -r "import.*immer\|from.*immer\|produce\|createDraft" apps/web/src ``` ### 2. Vérifier `@dnd-kit` ```bash # Chercher tous les usages grep -r "@dnd-kit\|useDraggable\|useDroppable\|DndContext" apps/web/src ``` ### 3. Vérifier `hls.js` ```bash # Chercher tous les usages grep -r "hls\.js\|Hls\|new Hls" apps/web/src ``` ## 💾 Économies Potentielles - `immer`: ~10KB (si supprimé) - `@dnd-kit/*`: ~50KB (si non utilisé) - `hls.js`: ~100KB (si non utilisé) - **Total potentiel**: ~160KB économisés