From 2466b93f0fdf6de779f074b5d068f82781598673 Mon Sep 17 00:00:00 2001 From: jp1ac4 <121959000+jp1ac4@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:06:55 +0000 Subject: [PATCH] wip: show warnings outside of overview w/o clicking --- gui/src/app/view/psbt.rs | 78 +---------------------------------- gui/src/app/view/spend/mod.rs | 22 +++++++--- 2 files changed, 18 insertions(+), 82 deletions(-) diff --git a/gui/src/app/view/psbt.rs b/gui/src/app/view/psbt.rs index d1fd86153..081f37fe8 100644 --- a/gui/src/app/view/psbt.rs +++ b/gui/src/app/view/psbt.rs @@ -73,7 +73,7 @@ pub fn psbt_view<'a>( }), ) .push(spend_header(tx, labels_editing)) - .push(spend_overview_view(tx, desc_info, key_aliases, None)) + .push(spend_overview_view(tx, desc_info, key_aliases)) .push( Column::new() .spacing(20) @@ -255,7 +255,6 @@ pub fn spend_overview_view<'a>( tx: &'a SpendTx, desc_info: &'a LianaPolicy, key_aliases: &'a HashMap, - warnings: Option<&'a Vec>, ) -> Element<'a, Message> { Column::new() .spacing(20) @@ -307,8 +306,7 @@ pub fn spend_overview_view<'a>( .align_items(Alignment::Center), ), ) - .push(signatures(tx, desc_info, key_aliases)) - .push_maybe(warnings.map(|w| spend_warnings_view(w))), + .push(signatures(tx, desc_info, key_aliases)), ) .style(theme::Container::Card(theme::Card::Simple)), ) @@ -338,78 +336,6 @@ pub fn spend_overview_view<'a>( .into() } -fn spend_warnings_button<'a>( - num_warnings: usize, - is_collapsed: bool, -) -> impl Fn() -> Button<'a, liana_ui::component::collapse::Event> { - let color = if num_warnings >= 1 { - color::ORANGE - } else { - color::GREEN - }; - move || { - Button::new( - Row::new() - .align_items(Alignment::Center) - .spacing(20) - .push(p1_bold("Warnings")) - .push( - Row::new() - .spacing(5) - .align_items(Alignment::Center) - .push(if num_warnings >= 1 { - icon::warning_icon().style(color) - } else { - icon::circle_check_icon().style(color) - }) - .push( - text(format!( - "{} warning{}", - num_warnings, - if num_warnings == 1 { "" } else { "s" } - )) - .style(color), - ) - .width(Length::Fill), - ) - .push(if is_collapsed { - icon::collapsed_icon() - } else { - icon::collapse_icon() - }), - ) - .padding(15) - .width(Length::Fill) - .style(theme::Button::TransparentBorder) - } -} - -fn spend_warnings_view(warnings: &Vec) -> Element { - Container::new(Collapse::new( - spend_warnings_button(warnings.len(), false), - spend_warnings_button(warnings.len(), true), - move || { - Into::>::into( - warnings.iter().fold( - Column::new() - .padding(15) - .spacing(10) - .push(text(if warnings.is_empty() { - "No warnings were generated.".to_string() - } else { - format!( - "The following warning{} generated:", - if warnings.len() > 1 { "s were" } else { " was" } - ) - })), - |col, warning| col.push(text(warning).style(color::GREY_3)), - ), - ) - }, - )) - .into() -} - pub fn signatures<'a>( tx: &'a SpendTx, desc_info: &'a LianaPolicy, diff --git a/gui/src/app/view/spend/mod.rs b/gui/src/app/view/spend/mod.rs index 1cdedaf3b..829669424 100644 --- a/gui/src/app/view/spend/mod.rs +++ b/gui/src/app/view/spend/mod.rs @@ -49,12 +49,22 @@ pub fn spend_view<'a>( .spacing(20) .push(Container::new(h3("Send")).width(Length::Fill)) .push(psbt::spend_header(tx, labels_editing)) - .push(psbt::spend_overview_view( - tx, - desc_info, - key_aliases, - if saved { None } else { Some(spend_warnings) }, - )) + .push_maybe(if spend_warnings.is_empty() || saved { + None + } else { + Some(spend_warnings.iter().fold( + Column::new().padding(15).spacing(5), + |col, warning| { + col.push( + Row::new() + .spacing(5) + .push(icon::warning_icon().style(color::ORANGE)) + .push(text(warning).style(color::ORANGE)), + ) + }, + )) + }) + .push(psbt::spend_overview_view(tx, desc_info, key_aliases)) .push( Column::new() .spacing(20)