navidrome/ui/src/common
Deluan Quintão be8ec15168
feat(ui): format dates using the selected language (#6160)
Dates were rendered with the browser locale, ignoring the language chosen in
Personal settings, so a user browsing in German still saw US-style dates. All
date rendering now resolves its locale through a useDateLocale hook that returns
the selected language, augmented with the region from navigator.languages when
the language carries none (Intl reads a bare "en" as en-US). Applied to
DateField, the rated/loved tooltips, the mobile user list and album release
dates; the three inline timestamp tooltips now share a formatDateTime helper.

Closes #229
2026-09-19 14:07:42 -04:00
..
AddToPlaylistButton.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
artist.js feat(artist): add Share and Download actions to the Artist detail page (#5944) 2026-08-12 11:59:56 -04:00
artist.test.js feat(artist): add Share and Download actions to the Artist detail page (#5944) 2026-08-12 11:59:56 -04:00
ArtistLinkField.jsx fix(ui): restore each page's scroll position when navigating back (#5892) 2026-08-04 22:07:16 -04:00
ArtistLinkField.test.jsx feat(server): custom ArtistJoiner config (#3873) 2025-03-23 10:53:21 -04:00
Artwork.jsx feat(artwork): new artwork pipeline with background resolution and Low Quality Image Placeholders (#5847) 2026-08-09 15:03:27 -04:00
Artwork.test.jsx feat(artwork): new artwork pipeline with background resolution and Low Quality Image Placeholders (#5847) 2026-08-09 15:03:27 -04:00
ArtworkAvatar.jsx feat(artwork): new artwork pipeline with background resolution and Low Quality Image Placeholders (#5847) 2026-08-09 15:03:27 -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 feat(ui): add Refresh Metadata action to the album and artist pages (#6078) 2026-09-02 23:29:31 -04:00
ContextMenus.test.jsx feat(ui): add Refresh Metadata to the album and artist context menus (#6036) 2026-08-25 23:59:40 -04:00
DateField.jsx feat(ui): format dates using the selected language (#6160) 2026-09-19 14:07:42 -04:00
DateField.test.jsx feat(ui): format dates using the selected language (#6160) 2026-09-19 14:07:42 -04: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
ImageUploadOverlay.jsx refactor: rename EnableCoverArtUpload to EnableArtworkUpload 2026-03-27 19:33:46 -04:00
index.js feat(ui): add Refresh Metadata action to the album and artist pages (#6078) 2026-09-02 23:29:31 -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 Merge commit from fork 2026-02-03 12:22:57 -05:00
Linkify.test.jsx chore(deps): update all dependencies (#4618) 2025-10-25 17:05:16 -04:00
List.jsx feat(ui): remember 'items per page' selection across sessions (#5819) 2026-07-19 18:59:37 -04:00
List.test.jsx feat(ui): remember 'items per page' selection across sessions (#5819) 2026-07-19 18:59:37 -04:00
LoveButton.jsx feat(ui): format dates using the selected language (#6160) 2026-09-19 14:07:42 -04:00
MultiLineTextField.jsx chore: format JSX components 2026-02-03 12:46:39 -05:00
OverflowTooltip.jsx feat(ui): add tooltips for long playlist and album names - 5068 (#5070) 2026-03-15 14:55:55 -04:00
Pagination.jsx feat(ui): remember 'items per page' selection across sessions (#5819) 2026-07-19 18:59:37 -04:00
Pagination.test.jsx feat(ui): remember 'items per page' selection across sessions (#5819) 2026-07-19 18:59:37 -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
perPageStore.js feat(ui): remember 'items per page' selection across sessions (#5819) 2026-07-19 18:59:37 -04:00
perPageStore.test.js feat(ui): remember 'items per page' selection across sessions (#5819) 2026-07-19 18:59:37 -04:00
playbackActions.js feat: add similar songs functionality in agents, and Instant Mix (song-based) to UI (#4919) 2026-01-25 16:16:43 -05: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 fix(playlist): block track edits on synced playlists across all APIs (#5984) 2026-08-19 08:47:53 -04:00
playlistUtils.test.js fix(playlist): block track edits on synced playlists across all APIs (#5984) 2026-08-19 08:47:53 -04:00
QualityInfo.jsx feat(ui): integrate transcode decision into web player (#5155) 2026-03-09 11:06:31 -04:00
QualityInfo.test.jsx feat(ui): integrate transcode decision into web player (#5155) 2026-03-09 11:06:31 -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(ui): format dates using the selected language (#6160) 2026-09-19 14:07:42 -04:00
RefreshMetadataButton.jsx feat(ui): add Refresh Metadata action to the album and artist pages (#6078) 2026-09-02 23:29:31 -04:00
RefreshMetadataButton.test.jsx feat(ui): add Refresh Metadata action to the album and artist pages (#6078) 2026-09-02 23:29:31 -04:00
SafeHTML.jsx fix(ui): use div for fragment, check lastfm url for artist page (#4980) 2026-02-04 17:34:26 -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 fix(ui): disable shuffle for instant mix playback 2026-01-29 17:04:10 -05:00
SongContextMenu.test.jsx feat: add similar songs functionality in agents, and Instant Mix (song-based) to UI (#4919) 2026-01-25 16:16:43 -05:00
SongDatagrid.jsx fix(ui): don't start playback when closing the disc cover lightbox (#5901) 2026-08-07 09:36:52 -04:00
SongDatagrid.test.jsx fix(ui): don't start playback when closing the disc cover lightbox (#5901) 2026-08-07 09:36:52 -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
ThumbHashCanvas.jsx feat(artwork): new artwork pipeline with background resolution and Low Quality Image Placeholders (#5847) 2026-08-09 15:03:27 -04:00
ThumbHashCanvas.test.jsx feat(artwork): new artwork pipeline with background resolution and Low Quality Image Placeholders (#5847) 2026-08-09 15:03:27 -04: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 feat(ui): remember 'items per page' selection across sessions (#5819) 2026-07-19 18:59:37 -04:00
useAlbumsPerPage.test.jsx feat(ui): remember 'items per page' selection across sessions (#5819) 2026-07-19 18:59:37 -04:00
useGetHandleArtistClick.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
useImageLoadingState.js feat(ui): add cover art support for internet radio stations (#5229) 2026-03-18 18:57:33 -04:00
useImageUrl.js feat(artwork): new artwork pipeline with background resolution and Low Quality Image Placeholders (#5847) 2026-08-09 15:03:27 -04:00
useImageUrl.test.js feat(artwork): new artwork pipeline with background resolution and Low Quality Image Placeholders (#5847) 2026-08-09 15:03:27 -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 fix(ui): reload the playlist after rating or loving a track (#6009) 2026-09-02 20:49:50 -04:00
useRating.test.js fix(ui): reload the playlist after rating or loving a track (#6009) 2026-09-02 20:49:50 -04:00
useRefreshMetadata.js feat(ui): add Refresh Metadata action to the album and artist pages (#6078) 2026-09-02 23:29:31 -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(artwork): new artwork pipeline with background resolution and Low Quality Image Placeholders (#5847) 2026-08-09 15:03:27 -04:00
useResourceRefresh.test.js feat(artwork): new artwork pipeline with background resolution and Low Quality Image Placeholders (#5847) 2026-08-09 15:03:27 -04:00
useScrollRestoration.jsx fix(ui): restore each page's scroll position when navigating back (#5892) 2026-08-04 22:07:16 -04:00
useScrollRestoration.test.jsx fix(ui): restore each page's scroll position when navigating back (#5892) 2026-08-04 22:07:16 -04:00
useSearchRefocus.js fix(ui): Search focus after clear (#4932) 2026-02-21 14:39:38 -05:00
useSearchRefocus.test.js fix(ui): Search focus after clear (#4932) 2026-02-21 14:39:38 -05:00
useSelectedFields.jsx build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
useToggleLove.jsx fix(ui): reload the playlist after rating or loving a track (#6009) 2026-09-02 20:49:50 -04:00
useToggleLove.test.js fix(ui): reload the playlist after rating or loving a track (#6009) 2026-09-02 20:49:50 -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