chore: update Angular cache and TypeScript build info files
This commit is contained in:
@@ -238,3 +238,53 @@ MIT (voir `LICENSE`)
|
||||
---
|
||||
|
||||
> 💡 **Tip produit** : gardez l’UX simple — **Thèmes fixes sous le header**, **Shorts séparés**, **CTA clairs** (“View All”, “Add to playlist”), et utilisez les **états vides** (empty states) sur History/Liked/Playlists pour guider l’utilisateur.
|
||||
|
||||
---
|
||||
|
||||
## 🧩 Ajouter un provider en 5 minutes
|
||||
|
||||
1) Front — Registry
|
||||
|
||||
- Éditez `src/app/core/providers/provider-registry.ts` et ajoutez une entrée `ProviderSpec` avec:
|
||||
- `id` (ex. `"yt"`), `displayName`, `shortLabel`, `icon`, `colorClass`
|
||||
- `supports` (search/shorts/live/playlists)
|
||||
- `buildSearchUrl(q)` (facultatif côté front)
|
||||
|
||||
2) Back — Handler
|
||||
|
||||
- Créez un fichier `server/providers/<provider>.mjs` qui exporte `default` avec:
|
||||
- `id`, `label`
|
||||
- `async search(q, { limit, page })` → `Promise<Suggestion[]>`
|
||||
- Enregistrez-le dans `server/providers/registry.mjs` pour être éligible au fan‑out `/api/search`.
|
||||
|
||||
3) API — Recherche multi‑providers
|
||||
|
||||
- L’endpoint `GET /api/search?q=...&providers=yt,dm,ru&limit=...` valide les providers et déclenche les recherches en parallèle (timeouts), puis retourne:
|
||||
|
||||
```json
|
||||
{
|
||||
"q": "documentary",
|
||||
"providers": ["yt","dm","ru"],
|
||||
"groups": {
|
||||
"yt": [{ "title": "...", "id": "...", "duration": 192, "isShort": false }],
|
||||
"dm": [],
|
||||
"ru": [{ "title": "...", "id": "...", "isShort": true }]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
4) UI — Sélecteur & Chips
|
||||
|
||||
- Le `SearchBoxComponent` (standalone) rend les chips `All / YT / DM / TW / PT / OD / RU` + menu rapide `@` (ProviderPicker).
|
||||
- Le composant émet `(submitted)` avec `{ q, providers }` et met à jour `SearchService` (RxJS state) pour l’appel API.
|
||||
|
||||
5) Deep‑link
|
||||
|
||||
- Les URLs du type `?q=…&providers=yt,ru` relancent la même recherche. Assurez-vous de propager le paramètre `providers` lors des navigations.
|
||||
|
||||
6) Tests (à compléter)
|
||||
|
||||
- Unit: parsing `@yt` dans l’input, toggle ProviderPicker, composition de `SearchService`.
|
||||
- e2e: `@yt + query` → résultats uniquement YouTube; chips `YT+DM` → sections YT/DM visibles; deep‑link restauré.
|
||||
|
||||
Astuce: l’ajout d’un provider ne nécessite pas de modifier les composants — il suffit d’ajouter une entrée dans le registry front + un handler API.
|
||||
|
||||
Reference in New Issue
Block a user