Expanded date fields (#2276)

* added missing date/year fields for other song references

* added year table column & sorting

* added navidrome track date view for grid, detail & table.

* update table column config

* Displays date & release date using formatPartialIsoDateUTC, and displays respective year field if no date present
added releaseYear player filter
Made fullscreen player show formatted date
fixed minor year/release year value mismatches
added subsonic date/year field to enable the fields in folder view for navidrome using subsonic year field

---------

Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
This commit is contained in:
ermmmwafle
2026-08-03 19:54:16 -07:00
committed by GitHub
parent fd9380a149
commit 64dc3c1bc2
30 changed files with 418 additions and 81 deletions
@@ -0,0 +1,6 @@
import { ItemDetailListCellProps } from './types';
import { formatPartialIsoDateUTC } from '/@/renderer/utils/format';
export const DateColumn = ({ song }: ItemDetailListCellProps) =>
song.date ? formatPartialIsoDateUTC(song.date) : <>&nbsp;</>;
@@ -14,6 +14,7 @@ import { CodecColumn } from './codec-column';
import { CommentColumn } from './comment-column';
import { ComposerColumn } from './composer-column';
import { DateAddedColumn } from './date-added-column';
import { DateColumn } from './date-column';
import { DefaultColumn } from './default-column';
import { DiscNumberColumn } from './disc-number-column';
import { DurationColumn } from './duration-column';
@@ -26,6 +27,7 @@ import { PathColumn } from './path-column';
import { PlayCountColumn } from './play-count-column';
import { RatingColumn } from './rating-column';
import { ReleaseDateColumn } from './release-date-column';
import { ReleaseYearColumn } from './release-year-column';
import { RowIndexColumn } from './row-index-column';
import { ItemDetailRowPlayControlCell } from './row-play-control-cell';
import { SampleRateColumn } from './sample-rate-column';
@@ -52,6 +54,7 @@ const COLUMN_MAP: Partial<Record<TableColumn, CellComponent>> = {
[TableColumn.CODEC]: CodecColumn,
[TableColumn.COMMENT]: CommentColumn,
[TableColumn.COMPOSER]: ComposerColumn,
[TableColumn.DATE]: DateColumn,
[TableColumn.DATE_ADDED]: DateAddedColumn,
[TableColumn.DISC_NUMBER]: DiscNumberColumn,
[TableColumn.DURATION]: DurationColumn,
@@ -62,6 +65,7 @@ const COLUMN_MAP: Partial<Record<TableColumn, CellComponent>> = {
[TableColumn.PATH]: PathColumn,
[TableColumn.PLAY_COUNT]: PlayCountColumn,
[TableColumn.RELEASE_DATE]: ReleaseDateColumn,
[TableColumn.RELEASE_YEAR]: ReleaseYearColumn,
[TableColumn.ROW_INDEX]: RowIndexColumn,
[TableColumn.SAMPLE_RATE]: SampleRateColumn,
[TableColumn.SIZE]: SizeColumn,
@@ -105,6 +109,7 @@ export {
CommentColumn,
ComposerColumn,
DateAddedColumn,
DateColumn,
DefaultColumn,
DiscNumberColumn,
DurationColumn,
@@ -118,6 +123,7 @@ export {
PlayCountColumn,
RatingColumn,
ReleaseDateColumn,
ReleaseYearColumn,
RowIndexColumn,
SampleRateColumn,
SizeColumn,
@@ -0,0 +1,4 @@
import { ItemDetailListCellProps } from './types';
export const ReleaseYearColumn = ({ song }: ItemDetailListCellProps) =>
song.releaseYear ? String(song.releaseYear) : <>&nbsp;</>;
@@ -1,4 +1,4 @@
import { ItemDetailListCellProps } from './types';
export const YearColumn = ({ song }: ItemDetailListCellProps) =>
song.releaseYear ? String(song.releaseYear) : <>&nbsp;</>;
song.year ? String(song.year) : <>&nbsp;</>;