Remove bitcoind from settings panel if remote backend

This commit is contained in:
edouardparis 2024-06-17 17:11:52 +02:00
parent 5e2fe3b6c1
commit 3b60a57bd4
3 changed files with 38 additions and 19 deletions

View File

@ -58,6 +58,7 @@ impl Panels {
cache: &Cache,
wallet: Arc<Wallet>,
data_dir: PathBuf,
daemon_backend: DaemonBackend,
internal_bitcoind: Option<&Bitcoind>,
) -> Panels {
Self {
@ -77,6 +78,7 @@ impl Panels {
settings: state::SettingsState::new(
data_dir,
wallet.clone(),
daemon_backend,
internal_bitcoind.is_some(),
),
}
@ -134,7 +136,13 @@ impl App {
data_dir: PathBuf,
internal_bitcoind: Option<Bitcoind>,
) -> (App, Command<Message>) {
let mut panels = Panels::new(&cache, wallet.clone(), data_dir, internal_bitcoind.as_ref());
let mut panels = Panels::new(
&cache,
wallet.clone(),
data_dir,
daemon.backend(),
internal_bitcoind.as_ref(),
);
let cmd = panels.home.reload(daemon.clone(), wallet.clone());
(
Self {

View File

@ -21,15 +21,22 @@ pub struct SettingsState {
data_dir: PathBuf,
wallet: Arc<Wallet>,
setting: Option<Box<dyn State>>,
daemon_backend: DaemonBackend,
internal_bitcoind: bool,
}
impl SettingsState {
pub fn new(data_dir: PathBuf, wallet: Arc<Wallet>, internal_bitcoind: bool) -> Self {
pub fn new(
data_dir: PathBuf,
wallet: Arc<Wallet>,
daemon_backend: DaemonBackend,
internal_bitcoind: bool,
) -> Self {
Self {
data_dir,
wallet,
setting: None,
daemon_backend,
internal_bitcoind,
}
}
@ -97,7 +104,7 @@ impl State for SettingsState {
if let Some(setting) = &self.setting {
setting.view(cache)
} else {
view::settings::list(cache)
view::settings::list(cache, self.daemon_backend == DaemonBackend::RemoteBackend)
}
}

View File

@ -32,7 +32,7 @@ use crate::{
hw::HardwareWallet,
};
pub fn list(cache: &Cache) -> Element<Message> {
pub fn list(cache: &Cache, is_remote_backend: bool) -> Element<Message> {
dashboard(
&Menu::Settings,
cache,
@ -44,23 +44,27 @@ pub fn list(cache: &Cache) -> Element<Message> {
Button::new(text("Settings").size(30).bold())
.style(theme::Button::Transparent)
.on_press(Message::Menu(Menu::Settings)))
.push(
Container::new(
Button::new(
Row::new()
.push(badge::Badge::new(icon::bitcoin_icon()))
.push(text("Bitcoin Core").bold())
.padding(10)
.spacing(20)
.align_items(Alignment::Center)
.width(Length::Fill),
.push_maybe(
if !is_remote_backend {
Some(Container::new(
Button::new(
Row::new()
.push(badge::Badge::new(icon::bitcoin_icon()))
.push(text("Bitcoin Core").bold())
.padding(10)
.spacing(20)
.align_items(Alignment::Center)
.width(Length::Fill),
)
.width(Length::Fill)
.style(theme::Button::TransparentBorder)
.on_press(Message::Settings(SettingsMessage::EditBitcoindSettings))
)
.width(Length::Fill)
.style(theme::Button::TransparentBorder)
.on_press(Message::Settings(SettingsMessage::EditBitcoindSettings))
)
.width(Length::Fill)
.style(theme::Container::Card(theme::Card::Simple))
.style(theme::Container::Card(theme::Card::Simple)))
} else {
None
}
)
.push(
Container::new(