feat(home): add Discover Songs rail to Mainstage (#301)

Reuses the SongRail component from the Tracks hub — 18 random songs
fetched in parallel with the other Home queries. No reroll button.
Click-to-play uses enqueueAndPlay so the existing queue stays intact.

New homeStore section id 'discoverSongs' inserted after 'discover'
in DEFAULT_HOME_SECTIONS. onRehydrateStorage now appends any newly
introduced sections to a previously persisted layout — existing users
get the rail without a manual Reset. Settings → Personalisation
Home-Customizer surfaces it automatically via SECTION_LABELS.

i18n key home.discoverSongs added to all 8 locales.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Frank Stellmacher
2026-04-25 14:32:20 +02:00
committed by GitHub
parent e3aabd98b7
commit 807e7b4520
11 changed files with 40 additions and 4 deletions
+1
View File
@@ -41,6 +41,7 @@ export const deTranslation = {
mostPlayed: 'Meistgehört',
recentlyPlayed: 'Kürzlich gespielt',
discover: 'Entdecken',
discoverSongs: 'Titel entdecken',
loadMore: 'Mehr laden',
discoverMore: 'Mehr entdecken',
discoverArtists: 'Künstler entdecken',
+1
View File
@@ -43,6 +43,7 @@ export const enTranslation = {
mostPlayed: 'Most Played',
recentlyPlayed: 'Recently Played',
discover: 'Discover',
discoverSongs: 'Discover Songs',
loadMore: 'Load More',
discoverMore: 'Discover More',
discoverArtists: 'Discover Artists',
+1
View File
@@ -42,6 +42,7 @@ export const esTranslation = {
mostPlayed: 'Más Reproducidos',
recentlyPlayed: 'Reproducidos Recientemente',
discover: 'Descubrir',
discoverSongs: 'Descubrir canciones',
loadMore: 'Cargar Más',
discoverMore: 'Descubrir Más',
discoverArtists: 'Descubrir Artistas',
+1
View File
@@ -41,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',
+1
View File
@@ -41,6 +41,7 @@ export const nbTranslation = {
mostPlayed: 'Mest spilt',
recentlyPlayed: 'Nylig spilt',
discover: 'Oppdag',
discoverSongs: 'Oppdag spor',
loadMore: 'Last inn flere',
discoverMore: 'Oppdag flere',
discoverArtists: 'Oppdag artister',
+1
View File
@@ -41,6 +41,7 @@ export const nlTranslation = {
mostPlayed: 'Meest gespeeld',
recentlyPlayed: 'Recent afgespeeld',
discover: 'Ontdekken',
discoverSongs: 'Nummers ontdekken',
loadMore: 'Meer laden',
discoverMore: 'Meer ontdekken',
discoverArtists: 'Artiesten ontdekken',
+1
View File
@@ -43,6 +43,7 @@ export const ruTranslation = {
mostPlayed: 'Популярное',
recentlyPlayed: 'Недавно проиграно',
discover: 'Обзор',
discoverSongs: 'Открыть треки',
loadMore: 'Ещё',
discoverMore: 'Смотреть ещё',
discoverArtists: 'Исполнители',
+1
View File
@@ -41,6 +41,7 @@ export const zhTranslation = {
mostPlayed: '最常播放',
recentlyPlayed: '最近播放',
discover: '发现',
discoverSongs: '发现曲目',
loadMore: '加载更多',
discoverMore: '发现更多',
discoverArtists: '发现艺术家',