new_amount_btc
This commit is contained in:
parent
b22f22f0bc
commit
9415dc9390
@ -319,9 +319,9 @@ pub fn create_spend_tx<'a>(
|
|||||||
|
|
||||||
pub fn recipient_view<'a>(
|
pub fn recipient_view<'a>(
|
||||||
index: usize,
|
index: usize,
|
||||||
address: &form::Value<String>,
|
address: &'a form::Value<String>,
|
||||||
amount: &form::Value<String>,
|
amount: &'a form::Value<String>,
|
||||||
label: &form::Value<String>,
|
label: &'a form::Value<String>,
|
||||||
is_max_selected: bool,
|
is_max_selected: bool,
|
||||||
) -> Element<'a, CreateSpendMessage> {
|
) -> Element<'a, CreateSpendMessage> {
|
||||||
Container::new(
|
Container::new(
|
||||||
@ -395,7 +395,7 @@ pub fn recipient_view<'a>(
|
|||||||
None
|
None
|
||||||
})
|
})
|
||||||
.push_maybe(if !is_max_selected {
|
.push_maybe(if !is_max_selected {
|
||||||
Some(form::Form::new_trimmed("0.001 (in BTC)", amount, move |msg| {
|
Some(form::Form::new_amount_btc("0.001 (in BTC)", amount, move |msg| {
|
||||||
CreateSpendMessage::RecipientEdited(index, "amount", msg)
|
CreateSpendMessage::RecipientEdited(index, "amount", msg)
|
||||||
})
|
})
|
||||||
.warning(
|
.warning(
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
use bitcoin::Denomination;
|
||||||
use iced::{widget::text_input, Length};
|
use iced::{widget::text_input, Length};
|
||||||
|
|
||||||
use crate::{color, component::text, theme, util::Collection, widget::*};
|
use crate::{color, component::text, theme, util::Collection, widget::*};
|
||||||
@ -62,6 +63,29 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Creates a new [`Form`] that restrict input values to valid btc amount before applying the
|
||||||
|
/// `on_change` function.
|
||||||
|
/// It expects:
|
||||||
|
/// - a placeholder
|
||||||
|
/// - the current value
|
||||||
|
/// - a function that produces a message when the [`Form`] changes
|
||||||
|
pub fn new_amount_btc<F>(placeholder: &str, value: &'a Value<String>, on_change: F) -> Self
|
||||||
|
where
|
||||||
|
F: 'static + Fn(String) -> Message,
|
||||||
|
{
|
||||||
|
Self {
|
||||||
|
input: text_input::TextInput::new(placeholder, &value.value).on_input(move |s| {
|
||||||
|
if bitcoin::Amount::from_str_in(&s, Denomination::Bitcoin).is_ok() || s.is_empty() {
|
||||||
|
on_change(s)
|
||||||
|
} else {
|
||||||
|
on_change(value.value.clone())
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
warning: None,
|
||||||
|
valid: value.valid,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Sets the [`Form`] with a warning message
|
/// Sets the [`Form`] with a warning message
|
||||||
pub fn warning(mut self, warning: &'a str) -> Self {
|
pub fn warning(mut self, warning: &'a str) -> Self {
|
||||||
self.warning = Some(warning);
|
self.warning = Some(warning);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user