mirror of
https://github.com/aljazceru/notedeck.git
synced 2025-12-24 03:24:21 +01:00
wallet: fix nwc copy/paste
Fixes: https://github.com/damus-io/notedeck/issues/1012 Changelog-Fixed: Fix NWC copy/paste Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
@@ -868,7 +868,7 @@ fn render_nav_body(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
WalletView::new(state, ctx.i18n)
|
WalletView::new(state, ctx.i18n, ctx.clipboard)
|
||||||
.ui(ui)
|
.ui(ui)
|
||||||
.map(RenderNavAction::WalletAction)
|
.map(RenderNavAction::WalletAction)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
use egui::{vec2, CornerRadius, Layout};
|
use egui::{vec2, CornerRadius, Layout};
|
||||||
|
use egui_winit::clipboard::Clipboard;
|
||||||
use notedeck::{
|
use notedeck::{
|
||||||
get_current_wallet_mut, tr, Accounts, DefaultZapMsats, GlobalWallet, Localization,
|
get_current_wallet_mut, tr, Accounts, DefaultZapMsats, GlobalWallet, Localization,
|
||||||
NotedeckTextStyle, PendingDefaultZapState, Wallet, WalletError, WalletUIState, ZapWallet,
|
NotedeckTextStyle, PendingDefaultZapState, Wallet, WalletError, WalletUIState, ZapWallet,
|
||||||
@@ -154,11 +155,20 @@ impl WalletAction {
|
|||||||
pub struct WalletView<'a> {
|
pub struct WalletView<'a> {
|
||||||
state: WalletState<'a>,
|
state: WalletState<'a>,
|
||||||
i18n: &'a mut Localization,
|
i18n: &'a mut Localization,
|
||||||
|
clipboard: &'a mut Clipboard,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> WalletView<'a> {
|
impl<'a> WalletView<'a> {
|
||||||
pub fn new(state: WalletState<'a>, i18n: &'a mut Localization) -> Self {
|
pub fn new(
|
||||||
Self { state, i18n }
|
state: WalletState<'a>,
|
||||||
|
i18n: &'a mut Localization,
|
||||||
|
clipboard: &'a mut Clipboard,
|
||||||
|
) -> Self {
|
||||||
|
Self {
|
||||||
|
state,
|
||||||
|
i18n,
|
||||||
|
clipboard,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ui(&mut self, ui: &mut egui::Ui) -> Option<WalletAction> {
|
pub fn ui(&mut self, ui: &mut egui::Ui) -> Option<WalletAction> {
|
||||||
@@ -184,7 +194,7 @@ impl<'a> WalletView<'a> {
|
|||||||
WalletState::NoWallet {
|
WalletState::NoWallet {
|
||||||
state,
|
state,
|
||||||
show_local_only,
|
show_local_only,
|
||||||
} => show_no_wallet(ui, self.i18n, state, *show_local_only),
|
} => show_no_wallet(ui, self.i18n, state, *show_local_only, self.clipboard),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -206,8 +216,11 @@ fn show_no_wallet(
|
|||||||
i18n: &mut Localization,
|
i18n: &mut Localization,
|
||||||
state: &mut WalletUIState,
|
state: &mut WalletUIState,
|
||||||
show_local_only: bool,
|
show_local_only: bool,
|
||||||
|
clipboard: &mut Clipboard,
|
||||||
) -> Option<WalletAction> {
|
) -> Option<WalletAction> {
|
||||||
ui.horizontal_wrapped(|ui| {
|
ui.horizontal_wrapped(|ui| {
|
||||||
|
use notedeck_ui::context_menu::{input_context, PasteBehavior};
|
||||||
|
|
||||||
let text_edit = egui::TextEdit::singleline(&mut state.buf)
|
let text_edit = egui::TextEdit::singleline(&mut state.buf)
|
||||||
.hint_text(
|
.hint_text(
|
||||||
egui::RichText::new(tr!(
|
egui::RichText::new(tr!(
|
||||||
@@ -223,7 +236,13 @@ fn show_no_wallet(
|
|||||||
.margin(egui::Margin::same(12))
|
.margin(egui::Margin::same(12))
|
||||||
.password(true);
|
.password(true);
|
||||||
|
|
||||||
ui.add(text_edit);
|
// add paste context menu
|
||||||
|
input_context(
|
||||||
|
&ui.add(text_edit),
|
||||||
|
clipboard,
|
||||||
|
&mut state.buf,
|
||||||
|
PasteBehavior::Clear,
|
||||||
|
);
|
||||||
|
|
||||||
let Some(error_msg) = &state.error_msg else {
|
let Some(error_msg) = &state.error_msg else {
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user