Commit graph

917 commits

Author SHA1 Message Date
e154810b21
Merge branch 'jeffvli:development' into development 2025-11-17 09:51:22 +02:00
Kendall Garner
cad0265e3c
fix(rpc): truncate certain fields (#1263)
* fix(rpc): truncate certain fields

* off by one...

* use elipses character
2025-11-17 02:24:52 +00:00
0f22b9fbd7 feat: add audio channel configuration for MPV player
- Add audio channels setting (auto/mono/stereo) to MPV properties
- Implement UI controls in settings panel and player right controls
- Enable immediate MPV property application when setting changes
- Update default playback type to LOCAL and sample rate to 48kHz
2025-11-16 18:21:25 +02:00
bf5e7bc774 feat: add visual effects and enhance home screen functionality
- Add configurable shimmer and scanline visual effects with toggle settings
- Introduce starred albums and tracks sections to home screen
- Add flashback feature for album recommendations by decades
- Enhance home screen with increased item limits (30)
- Update default color scheme to orange-based theme
- Implement Backspace/Delete key functionality for removing songs from queue in fullscreen mode
2025-11-16 17:09:33 +02:00
228fc8e82b feat: add cyan-orange color scheme with enhanced visual effects
- Add new CSS animations (hologramGlow, float, shimmer, scanline)
- Introduce cyan and orange color palette variants
- Update scrollbar styling with orange theme colors
- Modify player components with new gradient backgrounds
- Update global theme colors and surface styling
- Adjust default settings for enhanced visual experience
2025-11-16 17:09:33 +02:00
7a12e4657f feat: implement folder list view with navigation and playback
- Add folder browsing functionality with breadcrumb navigation
- Implement folder playback with recursive song scanning and progress notifications
- Add browser history support for back/forward button navigation
- Include empty folder detection and loading states
2025-11-16 17:09:33 +02:00
Damien Erambert
6a236c803a
Small light theme fixes (#1248)
* Use grey border instead of black shadow in light mode below filter-bar

* Fix some theme colors not updating when theme is changed in real-time
2025-11-09 00:25:58 -08:00
Kendall Garner
d74e7b52cc
position original release date after release types 2025-11-08 15:38:19 -08:00
Chen Marisa
8c539aaadc
feat: add 'preservePitch' toggle to playback speed "dropdown" (#1243)
* feat: add 'preservePitch' toggle to playback speed "dropdown"
2025-11-06 01:10:17 -08:00
jeffvli
f266e299f5 remove old api types files 2025-11-03 11:16:50 -08:00
Kendall Garner
e26ffaac53
Add additional information to album: record label, release type, version (#1242)
* Add additional information to album

* add mbz release types and normalization

* update Pill styling

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-11-03 00:34:42 -08:00
jeffvli
f67937693d fix library header spinner 2025-11-02 22:03:03 -08:00
jeffvli
c7a473d864 refactor api controller to internalize server fetch 2025-11-02 21:56:35 -08:00
jeffvli
8dbaec3943 fix type errors 2025-11-02 04:27:44 -08:00
jeffvli
bc42329d27 fix merge conflicts from react-query v5 migration 2025-11-02 01:49:16 -07:00
jeffvli
b685ec370a remove barrel files in renderer 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
8115963264 upgrade and refactor for react-query v5 2025-11-02 01:38:47 -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
Xudong Zhou
829c27a5e9
Prevent Media Session Handling on MPV (#1212)
* Remove MediaSession Handling on MPV

* Add playbackType to config.json for Main Thread Access

* Disabling settings without Hiding
2025-11-01 18:26:16 -07:00
jeffvli
0ca9eb0fcd fix sidebar image using invalid fallback value 2025-11-01 12:49:48 -07:00
jeffvli
3d66a15ae6 fix setting description for sidebar (collapsed) nav (#1218) 2025-10-31 17:28:36 -07:00
jeffvli
6a04c709f0 remove z-index from playerbar controls (#1218) 2025-10-31 17:27:33 -07:00
Xudong Zhou
dd34888961
Fix Lyric Translation Not Resetting (#1208)
* Refactor lyrics translation and index handling

* Add auto translation toggle to lyric settings

* Add enableAutoTranslation setting to lyrics
2025-10-31 17:08:10 -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
Kendall Garner
a379100c9f
fix: disable certain playlist controls when search is enabled 2025-10-26 12:03:36 -07:00
Kendall Garner
4cbbb4035d
feat: add filtering for now playing view and sidebar 2025-10-26 11:51:55 -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
58ccd0cfd0
bugfix: remove duplicate scrobbling when there is only one item in the queue (#1222) 2025-10-25 20:25:07 +00:00
Tarulia
a9af1e91d4
Disable Media Keys with MediaSession on Windows (#1207)
In f07393c8 we enabled the MediaSession API, which from Chromium's side
brings its own native way of handling Global Media Keys. However, it
turns out having this enabled seemingly conflicts with Windows 11's SMTC
implementation when we also bind the Media Keys using Electron's Global
Hotkeys API (Windows 10 is apparently fine, but now EOL).

Globally passing `HardwareMediaKeyHandling` to `disable-features` was
considered, however using the MediaSession API requires
`HardwareMediaKeyHandling` to be enabled, so this is not an option.

Instead, with MediaSession enabled we need to let Chromium handle the
Media Keys, while without MediaSession we bind our own Global Hot Keys
for users that have them enabled in the settings.

Co-authored-by: Xudong Zhou <godzmichael@outlook.com>
2025-10-21 21:48:09 -07:00
Lyall
848b3f58b3
Fix short album/artist name breaking Discord presence (#1191)
* Fix short album/artist name breaking Discord presence

* fix lint rule that isn't firing, cleanup types

---------

Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
2025-10-14 02:17:09 +00:00
jeffvli
b16e57710b hide mediasession setting for non-desktop 2025-10-13 12:06:03 -07:00
jeffvli
931e96b9d1 fix media session setting toggle for web 2025-10-13 12:00:42 -07:00
jeffvli
c27b86d2b2 fix media session settings error on web 2025-10-13 11:49:34 -07:00
jeffvli
1b15c73db0 fix scrobble time race condition
- revert playerbar slider refactor
- re-implement mediasession handler
2025-10-13 11:44:42 -07:00
jeffvli
4e53030e8d Revert "refactor playerbar slider to separate component"
This reverts commit 309b49b46e.
2025-10-13 11:38:26 -07:00
jeffvli
22b798812e Revert "fix playback controls being called multiple times on media key input"
This reverts commit 1b8661d566.
2025-10-13 11:38:19 -07:00
jeffvli
1b8661d566 fix playback controls being called multiple times on media key input 2025-10-13 04:33:11 -07:00
Kendall Garner
68476deb98
fix album song count 2025-10-12 16:44:05 -07:00
jeffvli
c88c6cf55e add mediasession playback controls 2025-10-12 16:37:24 -07:00
jeffvli
58becc5c8e add useMediaSession hook to set metadata and status 2025-10-12 16:07:59 -07:00
jeffvli
309b49b46e refactor playerbar slider to separate component 2025-10-12 16:07:00 -07:00
jeffvli
40e7eda882 hide mediasession setting on desktop non-windows 2025-10-12 15:53:16 -07:00
Mike Benz
f07393c82a
enable mediaSession api (#1040)
* enable mediaSession api
2025-10-12 14:59:30 -07:00
Lyall
3636384508
show time remaining instead of duration on click (#1179)
* show time remaining on duration click
2025-10-12 14:22:58 -07:00
jeffvli
9f8d9a5b28 move update settings to advanced tab 2025-10-12 02:33:35 -07:00
jeffvli
4d12a4d6cb add release channel setting and implementation 2025-10-11 15:05:29 -07:00
Kendall Garner
fccbf83c12
bugfix: handle playlist with no tracks 2025-10-11 12:39:59 -07:00
Kendall Garner
6733047942
improve jellyfin participants 2025-10-10 19:32:11 -07:00