Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Progress bar for download of Specter binary in Electron #2257

Conversation

moneymanolis
Copy link
Collaborator

@moneymanolis moneymanolis commented Feb 24, 2023

The download of the Specter binary (specterd) can take several minutes. To improve the UX of this lengthy process, this PR implements a progress bar of the download.

Architectural / UI choices:

  • This library is used for the progress bar to have more options as the standard progress bars in Electron.
  • The progress bar instance is a child window of the main window. So this applies (from the documentation): "If informed, the progress bar window will always show on top of the parent window and will block it so user can't interact with it until the progress bar is completed/aborted and closed."

This makes a lot of sense for our use case, since the user cannot do anything else before specterd is downloaded.

This choice led to the need to implement a Force Quit menu item in the dock for MacOS, since the default Quit item cannot be changed or replaced and it doesn't trigger the "before-quit" event if a child window is still open on MacOS. The Force Quit during download item gives the (MacOS) user the opportunity to also quit the app from the dock. The item disappears again if the download is finished.

Note: Main.js should be made much more modular and the download code should probably be seperated out to a dedicated file. This should be done in a different PR, though, since this feature should ideally be available asap.

Visuals

Startup

Screen.Recording.2023-02-24.at.15.20.03.mov

Download finished

Screen.Recording.2023-02-24.at.15.27.52.mov

Dock

Screen.Recording.2023-02-23.at.19.57.05.mov

Logging of the download progress

Screenshot 2023-02-24 at 13 52 39

@moneymanolis moneymanolis merged commit ce8a614 into cryptoadvance:uiux-revamp Feb 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants