navidrome/ui/src/common
zacaj 3294bcacfc
feat: add Rated At field - #4653 (#4660)
* feat(model): add Rated At field - #4653

Signed-off-by: zacaj <zacaj@zacaj.com>

* fix(ui): ignore empty dates in rating/love tooltips - #4653

* refactor(ui): add isDateSet util function

Signed-off-by: zacaj <zacaj@zacaj.com>

* feat: add tests for isDateSet and rated_at sort mappings

Added comprehensive tests for isDateSet and urlValidate functions in
ui/src/utils/validations.test.js covering falsy values, Go zero date handling,
valid date strings, Date objects, and edge cases.

Added rated_at sort mapping to album, artist, and mediafile repositories,
following the same pattern as starred_at (sorting by rating first, then by
timestamp). This enables proper sorting by rating date in the UI.

---------

Signed-off-by: zacaj <zacaj@zacaj.com>
Co-authored-by: zacaj <zacaj@zacaj.com>
Co-authored-by: Deluan <deluan@navidrome.org>
2025-11-24 23:18:05 -05:00
..
AddToPlaylistButton.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
ArtistLinkField.jsx fix(ui): update artist link rendering and improve button styles 2025-05-23 17:42:19 -04:00
ArtistLinkField.test.jsx feat(server): custom ArtistJoiner config (#3873) 2025-03-23 10:53:21 -04:00
BatchPlayButton.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
BatchShareButton.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
BitrateField.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
CollapsibleComment.jsx feat(ui) add Save Queue to Playlist (#4110) 2025-05-23 22:04:18 -04:00
ContextMenus.jsx fix(ui): always order album tracks by disc and track number (fixes #3720) (#3975) 2025-04-17 19:23:53 -04:00
DateField.jsx feat: add Rated At field - #4653 (#4660) 2025-11-24 23:18:05 -05:00
DocLink.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
DurationField.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
formatRange.js build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
index.js feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
LibrarySelector.jsx feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
LibrarySelector.test.jsx feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
Linkify.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
Linkify.test.jsx chore(deps): update all dependencies (#4618) 2025-10-25 17:05:16 -04:00
List.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
LoveButton.jsx feat: add Rated At field - #4653 (#4660) 2025-11-24 23:18:05 -05:00
MultiLineTextField.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
MultiLineTextField.test.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
Pagination.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
ParticipantsInfo.jsx feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
PathField.jsx feat(ui): hide absolute paths from regular users 2025-03-25 20:05:24 -04:00
PathField.test.jsx feat(ui): hide absolute paths from regular users 2025-03-25 20:05:24 -04:00
PlayButton.jsx fix(ui): always order album tracks by disc and track number (fixes #3720) (#3975) 2025-04-17 19:23:53 -04:00
playlistUtils.js build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
playlistUtils.test.js build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
QualityInfo.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
QualityInfo.test.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
QuickFilter.jsx fix(ui): fix make dev (#3795) 2025-03-10 14:50:16 -04:00
QuickFilter.test.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
RangeField.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
RatingField.jsx feat: add Rated At field - #4653 (#4660) 2025-11-24 23:18:05 -05:00
sanitizeFieldRestProps.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
SelectLibraryInput.jsx feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
SelectLibraryInput.test.jsx feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
ShuffleAllButton.jsx fix(ui): skip missing files in bulk operations (#3807) 2025-03-11 20:19:46 -04:00
SimpleList.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
SizeField.jsx feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
SongBulkActions.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
SongContextMenu.jsx refactor: remove unused CSS class in SongContextMenu 2025-07-17 12:14:05 -04:00
SongContextMenu.test.jsx fix(ui): prevent disabled Show in Playlist menu item from triggering actions (#4356) 2025-07-17 11:00:12 -04:00
SongDatagrid.jsx fix(ui): always order album tracks by disc and track number (fixes #3720) (#3975) 2025-04-17 19:23:53 -04:00
SongInfo.jsx feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
SongSimpleList.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
SongTitleField.jsx feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
Title.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
ToggleFieldsMenu.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
useAlbumsPerPage.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
useGetHandleArtistClick.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
useInterval.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
useLibrarySelection.js feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
useLibrarySelection.test.js feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
useRating.jsx feat(ui): add song Love and Rating functionality to playlist view (#4134) 2025-06-04 20:38:28 -04:00
useRating.test.js feat(ui): add song Love and Rating functionality to playlist view (#4134) 2025-06-04 20:38:28 -04:00
useRefreshOnEvents.jsx feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
useRefreshOnEvents.test.js feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
useResourceRefresh.jsx feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
useResourceRefresh.test.js build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
useSelectedFields.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
useToggleLove.jsx feat(ui): add song Love and Rating functionality to playlist view (#4134) 2025-06-04 20:38:28 -04:00
useToggleLove.test.js feat(ui): add song Love and Rating functionality to playlist view (#4134) 2025-06-04 20:38:28 -04:00
useTraceUpdate.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
Writable.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00