fix: restore old date display/sort behaviour (#3862)

* fix(server): bring back legacy date mappings

Signed-off-by: Deluan <deluan@navidrome.org>

* reuse the mapDates logic in the legacyReleaseDate function

Signed-off-by: Deluan <deluan@navidrome.org>

* fix mappings

Signed-off-by: Deluan <deluan@navidrome.org>

* show original and release dates in album grid

Signed-off-by: Deluan <deluan@navidrome.org>

* fix tests based on new year mapping

Signed-off-by: Deluan <deluan@navidrome.org>

* fix(subsonic): prefer returning original_year over (recording) year
when sorting albums

Signed-off-by: Deluan <deluan@navidrome.org>

* fix case when we don't have originalYear

Signed-off-by: Deluan <deluan@navidrome.org>

* show all dates in album's info, and remove the recording date from the album page

Signed-off-by: Deluan <deluan@navidrome.org>

* better?

Signed-off-by: Deluan <deluan@navidrome.org>

* add snapshot tests for Album Details

Signed-off-by: Deluan <deluan@navidrome.org>

* fix(subsonic): sort order for getAlbumList?type=byYear

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
This commit is contained in:
Deluan Quintão
2025-03-30 17:06:58 -04:00
committed by GitHub
parent 88f87e6c4f
commit 2b84c574ba
20 changed files with 929 additions and 155 deletions
+19
View File
@@ -0,0 +1,19 @@
import { useRecordContext } from 'react-admin'
import { formatRange } from '../common/index.js'
const originalYearSymbol = '♫'
const releaseYearSymbol = '○'
export const AlbumDatesField = ({ className, ...rest }) => {
const record = useRecordContext(rest)
const releaseDate = record.releaseDate
const releaseYear = releaseDate?.toString().substring(0, 4)
const yearRange =
formatRange(record, 'originalYear') || record['maxYear']?.toString()
let label = yearRange
if (releaseYear !== undefined && yearRange !== releaseYear) {
label = `${originalYearSymbol} ${yearRange} · ${releaseYearSymbol} ${releaseYear}`
}
return <span className={className}>{label}</span>
}