WIP: feat(plugin): settings-ui #3066

Draft
arjix wants to merge 25 commits from ArjixWasTaken/feat/settings-ui into master
Owner

Blocked by #3606


About

This is a plugin that introduces a new settings interface!
Configuring everything through menu options is not only a pain, but it is also a pain! (double pain!)
I propose that this plugin is enabled by default, but I won't insist on that if you think otherwise.

TODO

  • Add settings button
  • Add settings modal
    • General
    • Appearance
    • Plugins
    • Advanced
    • About

Screenshots

Full sidebar Mini sidebar
image image

general
appearance
plugins
about

### Blocked by #3606 --- ## About This is a plugin that introduces a new settings interface! Configuring everything through menu options is not only a pain, but it is also a pain! (double pain!) I propose that this plugin is enabled by default, but I won't insist on that if you think otherwise. ## TODO - [x] Add settings button - [x] Add settings modal - - [x] General - - [ ] Appearance - - [ ] Plugins - - [ ] Advanced - - [x] About ## Screenshots Full sidebar | Mini sidebar :-------------------------:|:-------------------------: ![image](https://github.com/user-attachments/assets/52b40859-cf2a-421a-9629-2c2e1e53e697) | ![image](https://github.com/user-attachments/assets/c601776c-bb3e-454e-b997-e96866690aa0) ![general](https://github.com/user-attachments/assets/d0d14c8b-0f35-4f20-8677-fccd25a06c72) ![appearance](https://github.com/user-attachments/assets/6da6f170-c0c0-407c-ac2c-80f9ffc3715a) ![plugins](https://github.com/user-attachments/assets/4f0381b2-3700-40b5-82ec-7faf6a61b477) ![about](https://github.com/user-attachments/assets/df903224-7a60-434e-b6eb-436b65eb3cf6)
Author
Owner

Before I develop this further, I'd like your opinions, any suggestions as to what/how the settings should look like?

@th-ch, @JellyBrick, @Su-Yong

Edit: 2 weeks have passed w/o any message, so I'll continue with whatever I think looks best.

~~Before I develop this further, I'd like your opinions, any suggestions as to what/how the settings should look like?~~ ~~@th-ch, @JellyBrick, @Su-Yong~~ Edit: 2 weeks have passed w/o any message, so I'll continue with whatever I think looks best.
JellyBrick (Migrated from github.com) requested changes 2025-03-26 11:33:55 +00:00
@ -0,0 +1,147 @@
import {
JellyBrick (Migrated from github.com) commented 2025-03-26 11:33:41 +00:00

In Solid.js, you should not use object destructuring on props. If you destructure props, you will lose reactivity.

In Solid.js, you should not use object destructuring on props. If you destructure props, you will lose reactivity.
@ -0,0 +1,147 @@
import {
Author
Owner

Yeah I know, I just don't have reactive values in that specific instance

Yeah I know, I just don't have reactive values in that specific instance
@ -0,0 +1,147 @@
import {
Author
Owner

ig it is good practice to not destructure the props anywhere, just for the sake of being consistent

ig it is good practice to not destructure the props anywhere, just for the sake of being consistent
Author
Owner

Question:

Should the settings:
a) be applied as soon as you change them (like the menu)
b) be applied after pressing a confirm button to close the modal

@JellyBrick, @th-ch

Question: Should the settings: a) be applied as soon as you change them (like the menu) b) be applied after pressing a confirm button to close the modal @JellyBrick, @th-ch
Rairof commented 2025-04-29 04:55:09 +00:00 (Migrated from github.com)

https://github.com/th-ch/youtube-music/pull/3066#issuecomment-2781732433
a) Imo as that's the expected behaviour most users would think of. Also so the users won't be confused as to why their selected settings don't work immediately.
It would be better if a pop up to restart the client is shown with settings that needs a restart to take effect.
PS ignore my suggestion if I (a user) am not qualified or supposed to suggest or share anything here. I just wanted to give my two cents on what I think would be best for the users overall.

https://github.com/th-ch/youtube-music/pull/3066#issuecomment-2781732433 a) Imo as that's the expected behaviour most users would think of. Also so the users won't be confused as to why their selected settings don't work immediately. It would be better if a pop up to restart the client is shown with settings that needs a restart to take effect. PS ignore my suggestion if I (a user) am not qualified or supposed to suggest or share anything here. I just wanted to give my two cents on what I think would be best for the users overall.
Author
Owner

@Rairof you didn't understand what I meant, so of course you'd think so

I meant we'd not allow the user to close their settings unless there are no unsaved changes, just like how discord does it

@Rairof you didn't understand what I meant, so of course you'd think so I meant we'd not allow the user to close their settings unless there are no unsaved changes, just like how discord does it
Rairof commented 2025-04-29 12:37:56 +00:00 (Migrated from github.com)

https://github.com/th-ch/youtube-music/pull/3066#issuecomment-2837458315
In that case. my proposal was to automatically apply said user changes inside the settings menu (like how it is now with the in-app menu) with the sole exception being the few plugins/functions that require a restart to function.

https://github.com/th-ch/youtube-music/pull/3066#issuecomment-2837458315 In that case. my proposal was to automatically apply said user changes inside the settings menu (like how it is now with the in-app menu) with the sole exception being the few plugins/functions that require a restart to function.
JellyBrick commented 2025-05-10 13:11:43 +00:00 (Migrated from github.com)

Question:

Should the settings: a) be applied as soon as you change them (like the menu) b) be applied after pressing a confirm button to close the modal

@JellyBrick, @th-ch

a + throttle (e.g. 5sec)

> Question: > > Should the settings: a) be applied as soon as you change them (like the menu) b) be applied after pressing a confirm button to close the modal > > @JellyBrick, @th-ch a + throttle (e.g. 5sec)
This pull request has changes conflicting with the target branch.
  • package.json
  • pnpm-lock.yaml
  • src/config/index.ts
  • src/plugins/adblocker/injectors/inject.js
  • src/yt-web-components.d.ts
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin ArjixWasTaken/feat/settings-ui:ArjixWasTaken/feat/settings-ui
git switch ArjixWasTaken/feat/settings-ui

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff ArjixWasTaken/feat/settings-ui
git switch ArjixWasTaken/feat/settings-ui
git rebase master
git switch master
git merge --ff-only ArjixWasTaken/feat/settings-ui
git switch ArjixWasTaken/feat/settings-ui
git rebase master
git switch master
git merge --no-ff ArjixWasTaken/feat/settings-ui
git switch master
git merge --squash ArjixWasTaken/feat/settings-ui
git switch master
git merge --ff-only ArjixWasTaken/feat/settings-ui
git switch master
git merge ArjixWasTaken/feat/settings-ui
git push origin master
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: YTMD/youtube-music#3066
No description provided.