jeffvli / sonixd

A full-featured Subsonic/Jellyfin compatible desktop music player
GNU General Public License v3.0
1.8k stars 74 forks source link

A couple of QOL Improvements #398

Closed fishnxt closed 1 year ago

fishnxt commented 1 year ago

Hello, I recently started using my server to store music and I really enjoy the project. While I know the rewrite is on the way, there were a couple of things that I felt were worth improving to make the user experience better for the time being.

I should preface this by saying that I am brand new to web development, and this was my first time diving into anything beyond a simple React webpage. I'm here for the learning experience, so I appreciate any feedback you may have, especially when it comes to best practices.

These commits make the following changes:

All of the time that I have spent testing has been without the NodeRT features & dependencies, but I left them in the repo.

jeffvli commented 1 year ago

Thanks for the contribution!

Queue is saved every time a song starts "playing"

Like you mentioned, it works the way it does now due to how Electron can handle unexpected closures of the app. It was discussed here in #293.

A 'Retain Window Size' option, which saves the window size when the program is closed

Saving it in the 'close' handler is a good idea. This was actually implemented before on the window resize handlers and then later removed due to it occassionally bugging out and setting negative dimensions which caused the app to be invisible

You could also probably be take this feature one step further to also save the window position using the 'moved' browser window event.

I don't have any issues with the code so it should be good to merge if you're fine with it as is!

fishnxt commented 1 year ago

I went ahead and added window position saving. Feel free to merge whenever :)

This was actually implemented before on the window resize handlers

Do you think it would exhibit the same behavior if the window size was saved inside of the 'moved' event? While it's not as important for the size of the window to be saved regularly, it could be useful