Commit Graph

339 Commits

Author SHA1 Message Date
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 b685ec370a remove barrel files in renderer 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
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
Jeff bca4a14f2e adjust web playback error handler (#1150) 2025-09-24 18:09:30 -07:00
Dave Johnson 59e01f90e8 fix: ensure autoplay on bad encoding 2025-09-01 09:23:39 +01:00
jeffvli 8b141d652c disable single attribute per line 2025-07-12 11:17:54 -07:00
Jeff b7a0b7f997 handle undefined options in GenericCell (#998) 2025-07-06 03:33:11 -07:00
Kendall Garner 2b8db9cfc1 fix table albumCount translation 2025-07-02 19:52:13 -07:00
Kendall Garner caa9448200 don't set sink on closed context 2025-07-02 19:19:51 -07:00
Lyall 81ca6937bc add preserve pitch option (#972) 2025-06-28 13:18:08 -07:00
Kendall Garner 63e3b97bca log -> error, remove unnecesary logs 2025-06-26 21:17:59 -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
jeffvli 5ae21bd224 fix icon alignment for context menu items 2025-06-10 17:37:43 -07:00
jeffvli 636c227a83 replace and fix position of current track play icon 2025-06-03 01:05:19 -07:00
Kendall Garner b6941df7a7 fix editorconfig and downgrade react player back to lazy 2025-05-28 21:57:47 -07:00
jeffvli daee582e92 fix web player playback
- add missing forwardRef on AudioPlayer component
- bump react-player to latest
2025-05-28 10:39:25 -07:00
jeffvli 930165d006 fix all imports for new structure 2025-05-26 17:20:02 -07:00
jeffvli 1cf587bc8f restructure files onto electron-vite boilerplate 2025-05-26 17:18:55 -07:00
Kendall Garner cf74625bfc warn if a value in select no longer exists 2025-05-18 10:59:45 -07:00
Kendall Garner 773f349b66 don't show song count if not present for home carousel 2025-05-09 19:08:36 -07:00
jeffvli 960bb5c660 fix navigation to detail page on artist list 2025-05-07 19:40:54 -07:00
jeffvli 6f37e13611 additional fix to sticky table header to account for native 2025-05-06 18:54:10 -07:00
jeffvli 35ee7e4606 fix position of sticky table header when titlebar present 2025-05-06 03:27:30 -07:00
Kendall Garner e84a4b20bc add artist list 2025-04-23 23:27:06 -07:00
jeffvli b48b0b0d11 Fix page header overlay on fullscreen player (#867) 2025-01-24 17:37:58 -08:00
jeffvli 6a619240fa Handle potential undefined value on CardRows (#834) 2024-11-18 20:17:33 -08:00
jeffvli b65c972da1 Handle negative values on gain calculation (#834) 2024-11-18 20:16:20 -08:00
jeffvli 7e78478fbe Fix combined title cell controls blocking links 2024-10-14 00:38:28 -07:00
jeffvli 18027d4292 Remove current song list index animation (#783) 2024-10-09 18:27:48 -07:00
jeffvli a8b3944c66 Set row play button to switch to song on queue lists 2024-10-09 18:20:04 -07:00
Egor ad34d8553e Add play button to song table album cover, like it is in grid (#772)
* Add play button to song table album cover, like it is in grid

* Fix: play button caused error for albums and artists tables
2024-10-03 19:22:51 -07:00
Mikhail Tsarev 7bcfe30a8e Improved translations for English and Russian versions. (#760)
* First version of Russian translation

* Improvements

---------

Co-authored-by: Suoslex <mtsarev06@gmail.com>
2024-09-25 21:42:41 -07:00
Kendall Garner 8cddbef701 Subsonic 2, general rework (#758) 2024-09-25 21:23:08 -07:00
Benjamin 8d8826a9b7 use utc for absolute date formatting (#743)
* use utc for date formatting

* add seperate utc function and call that instead

* swap date format to be a constant

* make dateadded use non-utc
2024-09-13 01:35:57 +00:00
Kendall Garner 8221af9a8f break by newline for comment 2024-09-11 07:41:15 -07:00
Kendall Garner 74aa88e082 add web visualizer (#314)
* add web visualizer

* fallback to simple model

* less samples, hopefully more efficient

* Use audiomotion analyzer

- Note: fixed to 4.1.1 because 4.2.0 uses esm which breaks in the current workflow...

* revert publish changes

* r2

* don't massively change package.json

* lazy
2024-09-09 01:25:01 +00:00
Kendall Garner 56c229a5e0 [slightly less scuffed bugfix]: Update table rating/favorite when updated anywhere … (#707)
* [scuffed bugfix]: Update table rating/favorite when updated anywhere else

Modify player store to have temporary state for favorite/rating update
Add effect handler for `virtual-table` to update rating/favorite for players

Note that this does not handle song grid view.
Using a similar handler for gird view did not work, as it appeared to result in inconsistent state.

Finally, this is probably not the optimal solution.
Performance appears fine for ~20k items, but no guarantees.

* restore should update song

* update song rating/favorite/played everywhere except playlist

* special rule for playlists

* use iterator instead
2024-09-02 22:31:20 -07:00
Kendall Garner 528bef01f0 provide transcoding support 2024-09-01 08:26:30 -07:00
Kendall Garner 93055b3bf1 allow disabling web audio 2024-08-29 19:44:24 -07:00
Kendall Garner 8a8542ddb1 simplify disc/subtitle for album list 2024-08-25 21:34:43 -07:00
Kendall Garner ccb6f2c8b0 very niche error handling for no audio device id but still have error checking 2024-08-24 20:36:04 -07:00
Kendall Garner a44071fedd add error checking for set sink id (case of no devices at all) 2024-08-24 20:13:30 -07:00
Kendall Garner 271be93a96 fix prettier/lint 2024-08-23 08:19:27 -07:00
Kendall Garner 37b0407188 simplify webaudio replaygain to reduce pop-in 2024-08-21 23:04:37 -07:00
Kendall Garner 616fd45734 add minimum duration check for crossfade 2024-08-21 22:47:35 -07:00
Kendall Garner af69a58418 [bugfix]: use chrome-specific implementation for web audio sink 2024-08-19 22:38:51 -07:00
Kendall Garner 94edda1856 better handling of grid refresh 2024-08-19 21:36:56 -07:00