mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
fix(home): align mainstage row title with "New Releases" (#741)
* fix(home): mainstage row matches "New Releases" sidebar + page label The Mainstage row whose title chevron links to `/new-releases` was labelled **Recently Added** (`home.recent`) while the sidebar entry and the page itself are **New Releases** (`sidebar.newReleases`) — three labels for the same destination. Reported on the Psysonic Discord. Reuse `sidebar.newReleases` in both consumers (the row title in `Home.tsx` and the section label in `HomeCustomizer.tsx`) so the string lives in exactly one place. The now-orphaned `home.recent` key is dropped from all nine locale files. * docs(changelog): mainstage New Releases label fix (PR #741)
This commit is contained in:
committed by
GitHub
parent
fcae65db80
commit
02e23b5755
@@ -618,6 +618,12 @@ Foundational work: faster reviews, narrower diffs, and a safety net under the pa
|
|||||||
* The **Square** preview was clipped at the bottom — the preview frame capped only `maxHeight: 52vh` while letting the 1:1 canvas span the full modal width, so the canvas overflowed the cap and `overflow: hidden` removed the last grid row with nothing to scroll into. Both dimensions are now capped per format (Square → **`maxWidth: 52vh`**, Story → **`min(320px, calc(52vh * 9 / 16))`**, Twitter remains modal-width-bound), so the preview always fits without clipping.
|
* The **Square** preview was clipped at the bottom — the preview frame capped only `maxHeight: 52vh` while letting the 1:1 canvas span the full modal width, so the canvas overflowed the cap and `overflow: hidden` removed the last grid row with nothing to scroll into. Both dimensions are now capped per format (Square → **`maxWidth: 52vh`**, Story → **`min(320px, calc(52vh * 9 / 16))`**, Twitter remains modal-width-bound), so the preview always fits without clipping.
|
||||||
* The preview also looked **blurry** — the canvas was rendered at **540 px** wide and CSS upscaled it back to ~676 px in the 720 px modal, while cover thumbnails were decoded at only **256 px** and stretched into ~300 px tiles. The preview canvas now renders at the **full export width (1080)** and decodes covers at the **export tile size (600)**, so text is crisp and album thumbnails downsample cleanly.
|
* The preview also looked **blurry** — the canvas was rendered at **540 px** wide and CSS upscaled it back to ~676 px in the 720 px modal, while cover thumbnails were decoded at only **256 px** and stretched into ~300 px tiles. The preview canvas now renders at the **full export width (1080)** and decodes covers at the **export tile size (600)**, so text is crisp and album thumbnails downsample cleanly.
|
||||||
|
|
||||||
|
### Home — Mainstage row title matches the sidebar and page label
|
||||||
|
|
||||||
|
**By [@Psychotoxical](https://github.com/Psychotoxical), thanks to zunoz for the report on the Psysonic Discord, PR [#741](https://github.com/Psychotoxical/psysonic/pull/741)**
|
||||||
|
|
||||||
|
* The Mainstage row whose title chevron jumps to **`/new-releases`** was labelled **Recently Added** while the sidebar entry and the page itself read **New Releases** — three different names for the same destination. The row title and the matching **Home Customizer** entry now reuse **`sidebar.newReleases`** so the wording lives in exactly one place; the orphan **`home.recent`** key is dropped from all nine locale files.
|
||||||
|
|
||||||
## [1.45.0] - 2026-05-04
|
## [1.45.0] - 2026-05-04
|
||||||
|
|
||||||
## Added
|
## Added
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export function HomeCustomizer() {
|
|||||||
|
|
||||||
const SECTION_LABELS: Record<HomeSectionId, string> = {
|
const SECTION_LABELS: Record<HomeSectionId, string> = {
|
||||||
hero: t('home.hero'),
|
hero: t('home.hero'),
|
||||||
recent: t('home.recent'),
|
recent: t('sidebar.newReleases'),
|
||||||
discover: t('home.discover'),
|
discover: t('home.discover'),
|
||||||
becauseYouLike: t('home.becauseYouLike'),
|
becauseYouLike: t('home.becauseYouLike'),
|
||||||
discoverSongs: t('home.discoverSongs'),
|
discoverSongs: t('home.discoverSongs'),
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
export const home = {
|
export const home = {
|
||||||
hero: 'Featured',
|
hero: 'Featured',
|
||||||
starred: 'Persönliche Favoriten',
|
starred: 'Persönliche Favoriten',
|
||||||
recent: 'Zuletzt hinzugefügt',
|
|
||||||
mostPlayed: 'Meistgehört',
|
mostPlayed: 'Meistgehört',
|
||||||
recentlyPlayed: 'Kürzlich gespielt',
|
recentlyPlayed: 'Kürzlich gespielt',
|
||||||
losslessAlbums: 'Lossless-Alben',
|
losslessAlbums: 'Lossless-Alben',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
export const home = {
|
export const home = {
|
||||||
hero: 'Featured',
|
hero: 'Featured',
|
||||||
starred: 'Personal Favorites',
|
starred: 'Personal Favorites',
|
||||||
recent: 'Recently Added',
|
|
||||||
mostPlayed: 'Most Played',
|
mostPlayed: 'Most Played',
|
||||||
recentlyPlayed: 'Recently Played',
|
recentlyPlayed: 'Recently Played',
|
||||||
losslessAlbums: 'Lossless Albums',
|
losslessAlbums: 'Lossless Albums',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
export const home = {
|
export const home = {
|
||||||
hero: 'Destacado',
|
hero: 'Destacado',
|
||||||
starred: 'Favoritos Personales',
|
starred: 'Favoritos Personales',
|
||||||
recent: 'Agregados Recientemente',
|
|
||||||
mostPlayed: 'Más Reproducidos',
|
mostPlayed: 'Más Reproducidos',
|
||||||
recentlyPlayed: 'Reproducidos Recientemente',
|
recentlyPlayed: 'Reproducidos Recientemente',
|
||||||
losslessAlbums: 'Álbumes sin Pérdidas',
|
losslessAlbums: 'Álbumes sin Pérdidas',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
export const home = {
|
export const home = {
|
||||||
hero: 'En vedette',
|
hero: 'En vedette',
|
||||||
starred: 'Favoris personnels',
|
starred: 'Favoris personnels',
|
||||||
recent: 'Ajoutés récemment',
|
|
||||||
mostPlayed: 'Les plus écoutés',
|
mostPlayed: 'Les plus écoutés',
|
||||||
recentlyPlayed: 'Récemment écoutés',
|
recentlyPlayed: 'Récemment écoutés',
|
||||||
losslessAlbums: 'Albums lossless',
|
losslessAlbums: 'Albums lossless',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
export const home = {
|
export const home = {
|
||||||
hero: 'Utvalgt',
|
hero: 'Utvalgt',
|
||||||
starred: 'Personlige favoritter',
|
starred: 'Personlige favoritter',
|
||||||
recent: 'Nylig lagt til',
|
|
||||||
mostPlayed: 'Mest spilt',
|
mostPlayed: 'Mest spilt',
|
||||||
recentlyPlayed: 'Nylig spilt',
|
recentlyPlayed: 'Nylig spilt',
|
||||||
losslessAlbums: 'Lossless-album',
|
losslessAlbums: 'Lossless-album',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
export const home = {
|
export const home = {
|
||||||
hero: 'Uitgelicht',
|
hero: 'Uitgelicht',
|
||||||
starred: 'Persoonlijke favorieten',
|
starred: 'Persoonlijke favorieten',
|
||||||
recent: 'Recent toegevoegd',
|
|
||||||
mostPlayed: 'Meest gespeeld',
|
mostPlayed: 'Meest gespeeld',
|
||||||
recentlyPlayed: 'Recent afgespeeld',
|
recentlyPlayed: 'Recent afgespeeld',
|
||||||
losslessAlbums: 'Lossless-albums',
|
losslessAlbums: 'Lossless-albums',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
export const home = {
|
export const home = {
|
||||||
hero: 'Promovat',
|
hero: 'Promovat',
|
||||||
starred: 'Evaluate',
|
starred: 'Evaluate',
|
||||||
recent: 'Adăugate Recent',
|
|
||||||
mostPlayed: 'Cele mai Redate',
|
mostPlayed: 'Cele mai Redate',
|
||||||
recentlyPlayed: 'Redate Recent',
|
recentlyPlayed: 'Redate Recent',
|
||||||
losslessAlbums: 'Albume Lossless',
|
losslessAlbums: 'Albume Lossless',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
export const home = {
|
export const home = {
|
||||||
hero: 'Подборка',
|
hero: 'Подборка',
|
||||||
starred: 'Личное избранное',
|
starred: 'Личное избранное',
|
||||||
recent: 'Недавно добавлено',
|
|
||||||
mostPlayed: 'Популярное',
|
mostPlayed: 'Популярное',
|
||||||
recentlyPlayed: 'Недавно проиграно',
|
recentlyPlayed: 'Недавно проиграно',
|
||||||
losslessAlbums: 'Lossless-альбомы',
|
losslessAlbums: 'Lossless-альбомы',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
export const home = {
|
export const home = {
|
||||||
hero: '精选',
|
hero: '精选',
|
||||||
starred: '个人收藏',
|
starred: '个人收藏',
|
||||||
recent: '最近添加',
|
|
||||||
mostPlayed: '最常播放',
|
mostPlayed: '最常播放',
|
||||||
recentlyPlayed: '最近播放',
|
recentlyPlayed: '最近播放',
|
||||||
losslessAlbums: '无损专辑',
|
losslessAlbums: '无损专辑',
|
||||||
|
|||||||
+1
-1
@@ -196,7 +196,7 @@ export default function Home() {
|
|||||||
<>
|
<>
|
||||||
{!homeAlbumRowsDisabled && isVisible('recent') && (
|
{!homeAlbumRowsDisabled && isVisible('recent') && (
|
||||||
<AlbumRow
|
<AlbumRow
|
||||||
title={t('home.recent')}
|
title={t('sidebar.newReleases')}
|
||||||
titleLink="/new-releases"
|
titleLink="/new-releases"
|
||||||
albums={recent}
|
albums={recent}
|
||||||
onLoadMore={() => loadMore('newest', recent, setRecent)}
|
onLoadMore={() => loadMore('newest', recent, setRecent)}
|
||||||
|
|||||||
Reference in New Issue
Block a user