Merge branch 'main' into exp/orbit (pre-PR sync)

Conflicts resolved in:
- src/pages/SearchResults.tsx
- src/pages/AdvancedSearch.tsx

Both pages were rewritten on main (PR #303) to use the shared
<SongRow> component with click-to-enqueueAndPlay semantics. Orbit's
playSong helper that branched on orbit-active is no longer needed
at the page level — instead, orbit awareness moved INTO SongRow and
SongCard themselves: in an active orbit session both buttons collapse
into addTrackToOrbit (suggest for guests, host-enqueue for the host)
so we don't ship a queue replacement to every guest.

Also kept main's IntersectionObserver-based pagination on both pages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Psychotoxical
2026-04-25 16:34:38 +02:00
28 changed files with 1760 additions and 215 deletions
+16
View File
@@ -21,6 +21,7 @@ export const frTranslation = {
cancelDownload: 'Annuler le téléchargement',
offlineLibrary: 'Bibliothèque hors ligne',
genres: 'Genres',
tracks: 'Titres',
playlists: 'Playlists',
mostPlayed: 'Les plus joués',
radio: 'Radio Internet',
@@ -40,6 +41,7 @@ export const frTranslation = {
mostPlayed: 'Les plus écoutés',
recentlyPlayed: 'Récemment écoutés',
discover: 'Découvrir',
discoverSongs: 'Découvrir des titres',
loadMore: 'Charger plus',
discoverMore: 'Découvrir plus',
discoverArtists: 'Découvrir des artistes',
@@ -378,6 +380,20 @@ export const frTranslation = {
offlineQueuing: 'Mise en file d\'attente de {{count}} album(s) hors ligne…',
offlineFailed: 'Échec de l\'ajout de {{name}} hors ligne',
},
tracks: {
title: 'Titres',
subtitle: 'Parcourir. Chercher. Découvrir.',
heroEyebrow: 'Titre du moment',
heroReroll: 'En choisir un autre',
playSong: 'Lire',
enqueueSong: 'Ajouter à la file',
railRandom: 'Sélection aléatoire',
browseTitle: 'Parcourir tous les titres',
browseUnsupported: 'Ce serveur ne liste pas toute la bibliothèque d\'un coup. Utilisez la recherche ci-dessus pour trouver des titres précis.',
searchPlaceholder: 'Chercher un titre par titre, artiste ou album…',
count_one: '{{count}} titre',
count_other: '{{count}} titres',
},
artists: {
title: 'Artistes',
search: 'Rechercher…',