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

feat(gui, tauri): Save settings in Tauri storage #102

Merged
merged 17 commits into from
Oct 8, 2024
Merged

Conversation

binarybaron
Copy link

@binarybaron binarybaron commented Sep 28, 2024

  • Implemented dual persistence strategy:
    • User Settings: Persisted across app restarts using tauri-plugin-store.
    • Transient State: Persisted across page reloads using sessionStorage.
  • Added settingsSlice reducer for managing persistent user settings.
  • Updated Redux store configuration to handle multiple persistence layers.
  • Added a new Settings page in the GUI where users can specify custom Electrum RPC URLs for Bitcoin and Monero node URLs.
    • Users can input their preferred Electrum server (ssl://host:port) and Monero daemon (http://host:port).
    • Input fields include validation to ensure correct URL formats.
    • Settings persist across application restarts using Tauri's storage plugin.
    • A reset option is available to revert to default settings.
  • Improved the Daemon Controller in the Help page:
    • Renamed RpcControlBox to DaemonControlBox for clarity.
    • Users can now start the daemon manually if it isn't running or has failed.
    • Added a "Restart GUI" button to apply new settings immediately.
    • Displayed the daemon's status within the controller.
  • Upgraded Tauri and related plugins to stable version 2.0.0:
    • Updated tauri, tauri-build, and tauri-utils to 2.0.0.
    • Ensured compatibility with the latest stable release.
  • Updated Tauri plugins to version 2.0.0:
    • tauri-plugin-clipboard-manager
    • tauri-plugin-shell
    • Added new plugins:
      • tauri-plugin-store for settings persistence.
      • tauri-plugin-process to enable application relaunch.
  • Deferred Context initialization until explicitly triggered from the frontend.
    • Moved Context setup from the setup function to a new initialize_context Tauri command.
    • Allows the application to start without immediately initializing the backend context.
    • Context initialization now considers user-provided settings for Electrum and Monero nodes.
  • Introduced a ValidatedTextField component for form inputs with validation logic.
    • Provides immediate feedback on input validity.
    • Used in the Settings page for Electrum and Monero node URLs.
  • If the user provides an override Monero remote daemon, we check if it reachable and on the correct network before starting the monero-wallet-rpc
  • Changed bitcoin_confirmation_target type from usize to u16.

@binarybaron
Copy link
Author

@Einliterflasche You wanna implement the UI side of this? You could also add an option for different themes (real dark mode, ...)

@Einliterflasche
Copy link

sure

@binarybaron binarybaron marked this pull request as ready for review October 8, 2024 09:39
@binarybaron binarybaron merged commit 253e0b0 into master Oct 8, 2024
29 checks passed
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.

2 participants