ui: fix dot input at transport amount, colored buttons at messages, animated wallet balance panel, hide soft keyboard on tx info modal close, fix translations

This commit is contained in:
ardocrat 2024-05-29 12:26:45 +03:00
parent 1cefb90071
commit 3a91ba6923
7 changed files with 19 additions and 13 deletions

View file

@ -81,7 +81,7 @@ wallets:
tx: Transaction
messages: Messages
transport: Transport
input_slatepack_desc: 'Enter message to create response or finalize the request:'
input_slatepack_desc: 'Enter received Slatepack message to create response or finalize request:'
parse_slatepack_err: 'An error occurred during reading of the message, check input:'
pay_balance_error: 'Account balance is insufficient to pay %{amount} ツ and network fee.'
parse_i1_slatepack_desc: 'To pay %{amount} ツ send this message to the receiver:'
@ -109,7 +109,7 @@ wallets:
repair_unavailable: You need an active connection to the node and completed wallet synchronization.
delete: Delete wallet
delete_conf: Are you sure you want to delete the wallet?
delete_desc: Make sure you have saved your recovery phrase to access funds.
delete_desc: Make sure you have saved your recovery phrase to access funds later.
wallet_loading_err: 'An error occurred during synchronization of the wallet, you can retry or change connection settings by selecting %{settings} at the bottom of the screen.'
wallet: Wallet
send: Send

View file

@ -81,7 +81,7 @@ wallets:
tx: Транзакция
messages: Сообщения
transport: Транспорт
input_slatepack_desc: 'Сообщение для создания ответа или завершения запроса:'
input_slatepack_desc: 'Введите сообщение для создания ответа или завершения запроса:'
parse_slatepack_err: 'Во время чтения сообщения произошла ошибка, проверьте входные данные:'
pay_balance_error: 'Средств на аккаунте недостаточно для оплаты %{amount} ツ и комиссии сети.'
parse_i1_slatepack_desc: 'Для оплаты %{amount} ツ отправьте это сообщение получателю:'
@ -93,7 +93,7 @@ wallets:
resp_slatepack_err: 'Во время создания ответа произошла ошибка, проверьте входные данные или повторите попытку:'
resp_exists_err: Такая транзакция уже существует.
resp_canceled_err: Такая транзакция уже была отменена.
create_request_desc: 'Создание запроса для отправки или получения средств:'
create_request_desc: 'Запрос на отправку или получение средств:'
send_request_desc: 'Вы создали запрос на отправку %{amount} ツ. Отправьте это сообщение получателю:'
send_slatepack_err: Во время создания запроса на отправку средств произошла ошибка, проверьте входные данные или повторите попытку.
invoice_desc: 'Вы создали запрос на получение %{amount} ツ. Отправьте это сообщение отправителю:'
@ -118,9 +118,9 @@ wallets:
tx_send_cancel_conf: 'Вы действительно хотите отменить отправку %{amount} ツ?'
tx_receive_cancel_conf: 'Вы действительно хотите отменить получение %{amount} ツ?'
rec_phrase_not_found: Фраза восстановления не найдена.
restore_wallet_desc: Восстановить кошелёк, удалив все файлы, если обычное исправление не помогло, вам будет необходимо переоткрыть кошелёк.
restore_wallet_desc: Восстановить кошелёк, удалив все файлы, если обычное исправление не помогло. Необходимо переоткрыть кошелёк.
transport:
desc: 'Используйте транспорт для синхронного получения или отправки сообщений:'
desc: 'Используйте транспорт для синхронных получения или отправки сообщений:'
tor_network: Сеть Tor
connected: Подключено
connecting: Подключение

View file

@ -121,7 +121,7 @@ impl RecoverySetup {
ui.add_space(12.0);
View::horizontal_line(ui, Colors::ITEM_STROKE);
ui.add_space(6.0);
ui.label(RichText::new(t!("wallets.delete_desc")).size(16.0).color(Colors::TEXT));
ui.label(RichText::new(t!("wallets.delete_desc")).size(16.0).color(Colors::RED));
ui.add_space(6.0);
// Draw button to delete the wallet.

View file

@ -72,6 +72,7 @@ const ACCOUNT_LIST_MODAL: &'static str = "account_list_modal";
const QR_CODE_SCAN_MODAL: &'static str = "qr_code_scan_modal";
impl WalletContent {
/// Draw wallet content.
pub fn ui(&mut self,
ui: &mut egui::Ui,
frame: &mut eframe::Frame,
@ -83,11 +84,11 @@ impl WalletContent {
let data = wallet.get_data();
let data_empty = data.is_none();
// Show wallet balance panel not on Settings tab, when wallet is not repairing,
// there is no error and data is not empty.
// Show wallet balance panel not on Settings tab with selected non-repairing
// wallet, when there is no error and data is not empty.
let show_balance = self.current_tab.get_type() != WalletTabType::Settings && !data_empty
&& !wallet.sync_error() && !wallet.is_repairing();
egui::TopBottomPanel::top("wallet_balance")
egui::TopBottomPanel::top(Id::from("wallet_balance").with(wallet.identifier()))
.frame(egui::Frame {
fill: Colors::FILL,
stroke: View::DEFAULT_STROKE,

View file

@ -253,7 +253,7 @@ impl WalletMessages {
columns[0].vertical_centered_justified(|ui| {
// Draw sending request creation button.
let send_text = format!("{} {}", UPLOAD_SIMPLE, t!("wallets.send"));
View::button(ui, send_text, Colors::BUTTON, || {
View::colored_text_button(ui, send_text, Colors::RED, Colors::BUTTON, || {
self.show_request_modal(false, cb);
});
});
@ -271,7 +271,7 @@ impl WalletMessages {
/// 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"));
View::button(ui, receive_text, Colors::BUTTON, || {
View::colored_text_button(ui, receive_text, Colors::GREEN, Colors::BUTTON, || {
self.show_request_modal(true, cb);
});
}

View file

@ -671,6 +671,7 @@ impl WalletTransport {
modal: &Modal,
cb: &dyn PlatformCallbacks) {
ui.add_space(6.0);
let has_send_err = self.has_tor_send_error();
let sending = self.tor_sending();
if !has_send_err && !sending {
@ -690,7 +691,7 @@ impl WalletTransport {
cb.show_keyboard();
} else {
self.address_scan_content.ui(ui, cb);
ui.add_space(12.0);
ui.add_space(6.0);
// Setup spacing between buttons.
ui.spacing_mut().item_spacing = egui::Vec2::new(6.0, 0.0);
@ -740,6 +741,8 @@ impl WalletTransport {
// Check value if input was changed.
if amount_edit_before != self.amount_edit {
if !self.amount_edit.is_empty() {
// Trim text, replace "," by "." and parse amount.
self.amount_edit = self.amount_edit.trim().replace(",", ".");
match amount_from_hr_string(self.amount_edit.as_str()) {
Ok(a) => {
if !self.amount_edit.contains(".") {

View file

@ -529,6 +529,7 @@ impl WalletTransactions {
.filter(|tx| tx.data.id == tx_id)
.collect::<Vec<&WalletTransaction>>();
if txs.is_empty() {
cb.hide_keyboard();
modal.close();
return;
}
@ -693,6 +694,7 @@ impl WalletTransactions {
modal: &Modal,
cb: &dyn PlatformCallbacks) {
if self.tx_info_slate.is_none() {
cb.hide_keyboard();
modal.close();
return;
}