ui: do not show send button at 0 balance, empty txs message
This commit is contained in:
parent
c0fd7cf0aa
commit
1c1e39045e
4 changed files with 75 additions and 44 deletions
|
@ -22,7 +22,7 @@ wallets:
|
||||||
await_conf_amount: Awaiting confirmation
|
await_conf_amount: Awaiting confirmation
|
||||||
await_fin_amount: Awaiting finalization
|
await_fin_amount: Awaiting finalization
|
||||||
locked_amount: Locked
|
locked_amount: Locked
|
||||||
txs_empty: 'To receive or send funds manually or through transport use %{message} or %{transport} buttons at the bottom of the screen, to change wallet settings press %{settings}.'
|
txs_empty: 'To receive funds manually or over transport use %{message} or %{transport} buttons at the bottom of the screen, to change wallet settings press %{settings} button.'
|
||||||
title: Wallets
|
title: Wallets
|
||||||
create_desc: Create or import existing wallet from saved recovery phrase.
|
create_desc: Create or import existing wallet from saved recovery phrase.
|
||||||
add: Add wallet
|
add: Add wallet
|
||||||
|
|
|
@ -22,7 +22,7 @@ wallets:
|
||||||
await_conf_amount: Ожидает подтверждения
|
await_conf_amount: Ожидает подтверждения
|
||||||
await_fin_amount: Ожидает завершения
|
await_fin_amount: Ожидает завершения
|
||||||
locked_amount: Заблокировано
|
locked_amount: Заблокировано
|
||||||
txs_empty: 'Для получения или отправки средств вручную или через транспорт используйте кнопки %{message} или %{transport} внизу экрана, для изменения настроек кошелька нажмите %{settings}.'
|
txs_empty: 'Для получения средств вручную или через транспорт используйте кнопки %{message} или %{transport} внизу экрана, для изменения настроек кошелька нажмите кнопку %{settings}.'
|
||||||
title: Кошельки
|
title: Кошельки
|
||||||
create_desc: Создайте или импортируйте существующий кошелёк из сохранённой фразы восстановления.
|
create_desc: Создайте или импортируйте существующий кошелёк из сохранённой фразы восстановления.
|
||||||
add: Добавить кошелёк
|
add: Добавить кошелёк
|
||||||
|
@ -113,7 +113,7 @@ wallets:
|
||||||
settings: Настройки кошелька
|
settings: Настройки кошелька
|
||||||
change_server_confirmation: Для применения изменения настроек соединения необходимо переоткрыть кошелёк. Переоткрыть его сейчас?
|
change_server_confirmation: Для применения изменения настроек соединения необходимо переоткрыть кошелёк. Переоткрыть его сейчас?
|
||||||
transport:
|
transport:
|
||||||
desc: 'Используйте транспорт для синхронного получения или отправки сообщений:'
|
desc: 'Используйте транспорт для синхронных получения или отправки сообщений:'
|
||||||
tor_network: Сеть Tor
|
tor_network: Сеть Tor
|
||||||
connected: Подключено
|
connected: Подключено
|
||||||
connecting: Подключение
|
connecting: Подключение
|
||||||
|
|
|
@ -148,7 +148,7 @@ impl WalletMessages {
|
||||||
ui.add_space(3.0);
|
ui.add_space(3.0);
|
||||||
|
|
||||||
// Show creation of request to send or receive funds.
|
// Show creation of request to send or receive funds.
|
||||||
self.request_ui(ui, cb);
|
self.request_ui(ui, wallet, cb);
|
||||||
|
|
||||||
ui.add_space(12.0);
|
ui.add_space(12.0);
|
||||||
View::horizontal_line(ui, Colors::ITEM_STROKE);
|
View::horizontal_line(ui, Colors::ITEM_STROKE);
|
||||||
|
@ -183,12 +183,16 @@ impl WalletMessages {
|
||||||
/// Draw creation of request to send or receive funds.
|
/// Draw creation of request to send or receive funds.
|
||||||
fn request_ui(&mut self,
|
fn request_ui(&mut self,
|
||||||
ui: &mut egui::Ui,
|
ui: &mut egui::Ui,
|
||||||
|
wallet: &Wallet,
|
||||||
cb: &dyn PlatformCallbacks) {
|
cb: &dyn PlatformCallbacks) {
|
||||||
ui.label(RichText::new(t!("wallets.create_request_desc"))
|
ui.label(RichText::new(t!("wallets.create_request_desc"))
|
||||||
.size(16.0)
|
.size(16.0)
|
||||||
.color(Colors::INACTIVE_TEXT));
|
.color(Colors::INACTIVE_TEXT));
|
||||||
ui.add_space(7.0);
|
ui.add_space(7.0);
|
||||||
|
|
||||||
|
// Show send button only if balance is not empty.
|
||||||
|
let data = wallet.get_data().unwrap();
|
||||||
|
if data.info.amount_currently_spendable > 0 {
|
||||||
// Setup spacing between buttons.
|
// Setup spacing between buttons.
|
||||||
ui.spacing_mut().item_spacing = egui::Vec2::new(6.0, 0.0);
|
ui.spacing_mut().item_spacing = egui::Vec2::new(6.0, 0.0);
|
||||||
|
|
||||||
|
@ -211,6 +215,17 @@ impl WalletMessages {
|
||||||
});
|
});
|
||||||
columns[1].vertical_centered_justified(|ui| {
|
columns[1].vertical_centered_justified(|ui| {
|
||||||
// Draw invoice request creation button.
|
// Draw invoice request creation button.
|
||||||
|
self.receive_button_ui(ui, cb);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// Draw invoice creation button.
|
||||||
|
self.receive_button_ui(ui, cb);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Draw invoice request creation button.
|
||||||
|
fn receive_button_ui(&mut self, ui: &mut egui::Ui, cb: &dyn PlatformCallbacks) {
|
||||||
let receive_text = format!("{} {}", DOWNLOAD_SIMPLE, t!("wallets.receive"));
|
let receive_text = format!("{} {}", DOWNLOAD_SIMPLE, t!("wallets.receive"));
|
||||||
View::button(ui, receive_text, Colors::BUTTON, || {
|
View::button(ui, receive_text, Colors::BUTTON, || {
|
||||||
// Setup modal values.
|
// Setup modal values.
|
||||||
|
@ -224,8 +239,6 @@ impl WalletMessages {
|
||||||
.show();
|
.show();
|
||||||
cb.show_keyboard();
|
cb.show_keyboard();
|
||||||
});
|
});
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Draw Slatepack message input content.
|
/// Draw Slatepack message input content.
|
||||||
|
|
|
@ -27,6 +27,7 @@ use crate::gui::views::types::{ModalPosition, TextEditOptions};
|
||||||
use crate::gui::views::wallets::wallet::types::{WalletTab, WalletTabType};
|
use crate::gui::views::wallets::wallet::types::{WalletTab, WalletTabType};
|
||||||
use crate::gui::views::wallets::wallet::WalletContent;
|
use crate::gui::views::wallets::wallet::WalletContent;
|
||||||
use crate::tor::Tor;
|
use crate::tor::Tor;
|
||||||
|
use crate::wallet::types::WalletData;
|
||||||
use crate::wallet::Wallet;
|
use crate::wallet::Wallet;
|
||||||
|
|
||||||
/// Wallet transport tab content.
|
/// Wallet transport tab content.
|
||||||
|
@ -153,20 +154,24 @@ impl WalletTransport {
|
||||||
|
|
||||||
/// Draw Tor transport content.
|
/// Draw Tor transport content.
|
||||||
fn tor_ui(&mut self, ui: &mut egui::Ui, wallet: &mut Wallet, cb: &dyn PlatformCallbacks) {
|
fn tor_ui(&mut self, ui: &mut egui::Ui, wallet: &mut Wallet, cb: &dyn PlatformCallbacks) {
|
||||||
|
let data = wallet.get_data().unwrap();
|
||||||
|
|
||||||
// Draw header content.
|
// Draw header content.
|
||||||
self.tor_header_ui(ui, wallet);
|
self.tor_header_ui(ui, wallet);
|
||||||
|
|
||||||
// Draw receive info content.
|
// Draw receive info content.
|
||||||
if wallet.slatepack_address().is_some() {
|
if wallet.slatepack_address().is_some() {
|
||||||
self.tor_receive_ui(ui, wallet, cb);
|
self.tor_receive_ui(ui, wallet, &data, cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw send content.
|
// Draw send content.
|
||||||
|
if data.info.amount_currently_spendable > 0 {
|
||||||
self.tor_send_ui(ui, cb);
|
self.tor_send_ui(ui, cb);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Draw Tor transport header content.
|
/// Draw Tor transport header content.
|
||||||
fn tor_header_ui(&self, ui: &mut egui::Ui, wallet: &mut Wallet) {
|
fn tor_header_ui(&self, ui: &mut egui::Ui, wallet: &Wallet) {
|
||||||
// Setup layout size.
|
// Setup layout size.
|
||||||
let mut rect = ui.available_rect_before_wrap();
|
let mut rect = ui.available_rect_before_wrap();
|
||||||
rect.set_height(78.0);
|
rect.set_height(78.0);
|
||||||
|
@ -245,7 +250,7 @@ impl WalletTransport {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Draw tor transport settings [`Modal`] content.
|
/// Draw tor transport settings [`Modal`] content.
|
||||||
fn tor_settings_modal_ui(&self, ui: &mut egui::Ui, wallet: &mut Wallet, modal: &Modal) {
|
fn tor_settings_modal_ui(&self, ui: &mut egui::Ui, wallet: &Wallet, modal: &Modal) {
|
||||||
ui.add_space(6.0);
|
ui.add_space(6.0);
|
||||||
ui.vertical_centered(|ui| {
|
ui.vertical_centered(|ui| {
|
||||||
ui.label(RichText::new(t!("transport.tor_autorun_desc"))
|
ui.label(RichText::new(t!("transport.tor_autorun_desc"))
|
||||||
|
@ -268,9 +273,14 @@ impl WalletTransport {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Draw Tor send content.
|
/// Draw Tor send content.
|
||||||
fn tor_receive_ui(&self, ui: &mut egui::Ui, wallet: &mut Wallet, cb: &dyn PlatformCallbacks) {
|
fn tor_receive_ui(&self,
|
||||||
|
ui: &mut egui::Ui,
|
||||||
|
wallet: &Wallet,
|
||||||
|
data: &WalletData,
|
||||||
|
cb: &dyn PlatformCallbacks) {
|
||||||
let slatepack_addr = wallet.slatepack_address().unwrap();
|
let slatepack_addr = wallet.slatepack_address().unwrap();
|
||||||
let service_id = &wallet.identifier();
|
let service_id = &wallet.identifier();
|
||||||
|
let can_send = data.info.amount_currently_spendable > 0;
|
||||||
|
|
||||||
// Setup layout size.
|
// Setup layout size.
|
||||||
let mut rect = ui.available_rect_before_wrap();
|
let mut rect = ui.available_rect_before_wrap();
|
||||||
|
@ -278,13 +288,21 @@ impl WalletTransport {
|
||||||
|
|
||||||
// Draw round background.
|
// Draw round background.
|
||||||
let bg_rect = rect.clone();
|
let bg_rect = rect.clone();
|
||||||
let item_rounding = View::item_rounding(1, 3, false);
|
let item_rounding = if can_send {
|
||||||
|
View::item_rounding(1, 3, false)
|
||||||
|
} else {
|
||||||
|
View::item_rounding(1, 2, false)
|
||||||
|
};
|
||||||
ui.painter().rect(bg_rect, item_rounding, Colors::BUTTON, View::ITEM_STROKE);
|
ui.painter().rect(bg_rect, item_rounding, Colors::BUTTON, View::ITEM_STROKE);
|
||||||
|
|
||||||
ui.vertical(|ui| {
|
ui.vertical(|ui| {
|
||||||
ui.allocate_ui_with_layout(rect.size(), Layout::right_to_left(Align::Center), |ui| {
|
ui.allocate_ui_with_layout(rect.size(), Layout::right_to_left(Align::Center), |ui| {
|
||||||
// Draw button to setup Tor transport.
|
// Draw button to setup Tor transport.
|
||||||
let button_rounding = View::item_rounding(1, 3, true);
|
let button_rounding = if can_send {
|
||||||
|
View::item_rounding(1, 3, true)
|
||||||
|
} else {
|
||||||
|
View::item_rounding(1, 2, true)
|
||||||
|
};
|
||||||
View::item_button(ui, button_rounding, QR_CODE, None, || {
|
View::item_button(ui, button_rounding, QR_CODE, None, || {
|
||||||
//TODO: qr for address
|
//TODO: qr for address
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue