Commit Graph

47 Commits

Author SHA1 Message Date
jeffvli c7a473d864 refactor api controller to internalize server fetch 2025-11-02 21:56:35 -08:00
jeffvli 34b728c86d fix shared song type import 2025-11-02 01:39:01 -07:00
jeffvli abd1d55f23 remove limit / startIndex from count query args 2025-11-02 01:39:01 -07:00
jeffvli 78fb9b5ab7 require response from detail/list endpoints 2025-11-02 01:39:01 -07:00
jeffvli dd70d30cd3 fix inconsistent image loader aspect ratio 2025-11-01 22:17:02 -07:00
Kendall Garner 1a176fd118 Refactor add to playlist modal (#1236)
* Refactor add to playlist modal

* redesign base modal component, add ModalButton component

* improve visibility of filled button focus

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-11-01 21:57:12 -07:00
jeffvli 805c75a67f optimize image component
- use new intersection hooks instead of react-intersection-observer
- remove motion, replace with css animation
- remove unneeded container from Loader component
2025-11-01 05:00:51 -07:00
jeffvli 29991ea95d replace react-intersection-observer package with mantine hooks 2025-11-01 04:41:51 -07:00
Jake King a9f2b083fa Import / Export Feishin Settings (#1163)
* Create a shared DragDrop Zone

- This zone allows the dropping of files
- The zone allows validation by parent
- The zone allows customisation like icon shown

* Import Settings

- Ability to import settings from a JSON file
- Validation to ensure file compatibility
- Visualiser for viewing string differences

* i18n

- Moved all hardcoded values to be en localised

* Zod / Validation

This commit contains the code to move settings to using ZOD, the reason for this is so that we can validate the settings schema that is being imported.

This commit also adds various validation and transforms to ensure the settings being reimported match values we expect.

I also removed the original crude validation and replaced it with the new ZOD parser that will handle this for us.

Finally the "styles-settings" component will listen to any external content updates and update its value, the reasoning is the external import wouldn't update the existing value.


- Split Settings schema into two parts, schema that is validated on import and schema that is not
- Schemas are merged to make the full SettingsStateSchema

* Migrate during validation

- Migration is done as part of validation
- Updated the store version to v10 as there has been changes to the settings
- Migrate will now add the fields from v9 to v10


- the build was failing due to ids not being mapped to their enum values

---------

Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
2025-10-28 20:54:13 -07:00
Lyall 4dd52b0cef feat: Add explicit status for Navidrome and OpenSubsonic (#1220)
* add navidrome explicit status

* add ExplicitStatus enum and support opensubsonic

* add explicit status to cards
2025-10-26 13:48:45 +00:00
Kendall Garner 6733047942 improve jellyfin participants 2025-10-10 19:32:11 -07:00
Kendall Garner 7c24f7cba4 use margin bottom for notifications component to not disable center controls 2025-10-04 07:34:48 -07:00
Evelyn Gravett 1b278cb33a Feature: Add song and artist links to discord RPC (#1160)
* Add song and artist links to discord RPC

* use first artist name for artist link, full artist name for song link

* use first album artist for song link

* add discord rpc links setting

* simplify discord link settings

* fix setting description

* add musicbrainz links

* fix callback missing dependency

* use encodeURIComponent for lastfm links

Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>

* split musicbrainz ids

* combine link settings

---------

Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
2025-10-04 03:27:59 +00:00
Kendall Garner 4a48598260 add multiple genre support for nd albums/tracks 2025-09-28 19:59:20 -07:00
Kendall Garner 6df270ba34 server add/edit refactor, allow jellyfin prefer instant mix 2025-09-28 19:19:24 -07:00
Kendall Garner 508013958f ND >= 0.56.0: search songs by artist | album artist id 2025-09-27 20:00:34 -07:00
Henry e344adfeed Add autodiscovery for Jellyfin servers (#1146)
* Add autodiscovery for Jellyfin servers

* Remove debugging aids

you didn't see anything

* Fix linter errors

* Send a discovery packet to localhost too
2025-09-26 22:53:19 +00:00
Kendall Garner f4be797f16 Add comment describing jellyfin image tag invalidation 2025-09-24 08:12:00 -07:00
Kendall Garner 2feef206fb add Navidrome/Jellyfin image cache invalidation 2025-09-24 08:05:22 -07:00
Malachi Soord 8a3edb71df feat: add semantic selectors for now-playing media (#1138)
* feat: add semantic selectors for now-playing media

This change adds unique class names to the elements that display the currently playing media information. This makes it easier for extension developers to parse the DOM and understand what media is playing.

The following classes have been added:
- `media-player`: The main player container.
- `player-cover-art`: The cover art of the playing track.
- `song-title`: The title of the playing track.
- `song-artist`: The artist of the playing track.
- `song-album`: The album of the playing track.
- `player-state-playing`/`player-state-paused`: The state of the player.
- `elapsed-time`: The elapsed time of the playing track.
- `total-duration`: The total duration of the playing track.

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-09-23 12:44:22 -07:00
Kendall Garner 1d46cd5ff9 client-side only sort for all playlists (#1125)
* initial client-side only sort for all playlists

* allow reordering jellyfin (assume it works properly) and navidrome

* on playlist page, add to queue by sort order
2025-09-17 21:06:30 -07:00
jeffvli 6368137815 move inView ref to ImageContainer component
- the separate outer component is unneeded and affects the positioning of some components which rely on the ImageContainer's styling
2025-09-06 17:14:30 -07:00
jeffvli 6dea9196a4 fix various light theme issues 2025-09-06 01:19:16 -07:00
Kendall Garner c21f7df7b2 fix share date setting, notification, lint fix 2025-09-04 21:15:42 -07:00
Kendall Garner f5af1c314c add image loader/unloader and only toggle source 2025-09-03 19:56:51 -07:00
Kendall Garner 1aac1a6361 Merge branch 'development' into react-image-lazy-loaded 2025-09-03 19:47:53 -07:00
Lyall a44ad66d46 add private mode toggle to app menu 2025-07-31 16:12:03 +01:00
Kendall Garner 4b4df28641 add bit depth, sample rate 2025-07-13 07:12:13 -07:00
jeffvli 8b141d652c disable single attribute per line 2025-07-12 11:17:54 -07:00
Kendall Garner 49bb42a298 Use lazy loading (react-intersection-observer) for image loading 2025-07-07 20:11:32 -07:00
Kendall Garner 6f5dd4881a join path with library path 2025-07-01 21:51:09 -07:00
Kendall Garner cd18e683bf yesnofilter null when not provided 2025-06-29 22:34:39 -07:00
Kendall Garner 5456c2c2b8 Improve Jellyfin/Navidrome Album/Song filter, Navidrome artist recent release
- Use `compilation=false` for Navidrome recent releases with artist credit
- Add `YesNoSelect` (yes, no, undefined) for `favorite` for Navidrome/Jellyfin `album`/`track`, and Navidrome `compilation`
- Fix folderButton translation
2025-06-29 22:14:06 -07:00
jeffvli 062c1c2b61 decrease brightness of header overlay on dark 2025-06-26 01:36:54 -07:00
jeffvli c429ac9223 move fonts to assets folder 2025-06-26 01:36:16 -07:00
jeffvli 64866c59bd adjust styles on fullscreen player image section
- fix image transition
- fix image aspect ratio
- adjust text sizes and shadow
2025-06-25 20:40:45 -07:00
jeffvli 8f585a5be9 adjust styles to better support light theme 2025-06-25 19:44:28 -07:00
jeffvli 8598313d12 fix styling on web titlebar style 2025-06-24 20:14:15 -07:00
jeffvli 4db47b4d37 switch image loading to lazy by default 2025-06-24 18:38:10 -07:00
jeffvli 786a693526 add animation presets 2025-06-24 18:38:10 -07:00
jeffvli 4acbb1820d set fullscreen player badges to transparent 2025-06-24 14:52:40 -07:00
jeffvli 6689e84f67 fix and update remote design 2025-06-24 14:36:14 -07:00
Jeff c1330d92b2 Migrate to Mantine v8 and Design Changes (#961)
* mantine v8 migration

* various design changes and improvements
2025-06-24 00:04:36 -07:00
Kendall Garner 87c9963354 fix subsonic album artist and album list count 2025-06-20 18:35:11 -07:00
Kendall Garner 9e689468f9 info for playlists, show id, fix playlist duration 2025-06-02 00:26:36 -07:00
jeffvli 930165d006 fix all imports for new structure 2025-05-26 17:20:02 -07:00
jeffvli 9db2e51d2d reorganize global types to shared directory 2025-05-26 17:18:56 -07:00