commit 87794fae33409cdd5f6d0addd032514cfe29d20e
parent e5c3bb4fe9be3c45bb4dc48659815dd8984dcdc5
Author: William Casarin <jb55@jb55.com>
Date: Mon, 14 Apr 2025 16:37:22 -0700
chrome: fix wallet button
Signed-off-by: William Casarin <jb55@jb55.com>
Diffstat:
2 files changed, 41 insertions(+), 28 deletions(-)
diff --git a/crates/notedeck_chrome/src/chrome.rs b/crates/notedeck_chrome/src/chrome.rs
@@ -5,7 +5,7 @@ use crate::app::NotedeckApp;
use egui::{vec2, Button, Label, Layout, RichText, ThemePreference, Widget};
use egui_extras::{Size, StripBuilder};
use nostrdb::{ProfileRecord, Transaction};
-use notedeck::{App, AppContext, NotedeckTextStyle, UserAccount};
+use notedeck::{App, AppContext, NotedeckTextStyle, UserAccount, WalletType};
use notedeck_columns::Damus;
use notedeck_dave::{Dave, DaveAvatar};
use notedeck_ui::{profile::get_profile_url, AnimationHelper, ProfilePic};
@@ -23,6 +23,7 @@ pub enum ChromePanelAction {
Support,
Settings,
Account,
+ Wallet,
SaveTheme(ThemePreference),
}
@@ -64,6 +65,14 @@ impl ChromePanelAction {
Self::Settings => {
Self::columns_navigate(ctx, chrome, notedeck_columns::Route::Relays);
}
+
+ Self::Wallet => {
+ Self::columns_navigate(
+ ctx,
+ chrome,
+ notedeck_columns::Route::Wallet(WalletType::Auto),
+ );
+ }
}
}
}
@@ -212,6 +221,8 @@ impl Chrome {
let support_resp = support_button(ui);
+ let wallet_resp = ui.add(wallet_button());
+
if ctx.args.debug {
ui.weak(format!("{}", ctx.frame_history.fps() as i32));
ui.weak(format!(
@@ -228,6 +239,8 @@ impl Chrome {
theme_action
} else if support_resp.clicked() {
Some(ChromePanelAction::Support)
+ } else if wallet_resp.clicked() {
+ Some(ChromePanelAction::Wallet)
} else {
None
}
@@ -408,3 +421,30 @@ pub fn get_account_url<'a>(
get_profile_url(None)
}
}
+
+fn wallet_button() -> impl Widget {
+ |ui: &mut egui::Ui| -> egui::Response {
+ let img_size = 24.0;
+
+ let max_size = img_size * ICON_EXPANSION_MULTIPLE;
+ let img_data = egui::include_image!("../../../assets/icons/wallet-icon.svg");
+
+ let mut img = egui::Image::new(img_data).max_width(img_size);
+
+ if !ui.visuals().dark_mode {
+ img = img.tint(egui::Color32::BLACK);
+ }
+
+ let helper = AnimationHelper::new(ui, "wallet-icon", vec2(max_size, max_size));
+
+ let cur_img_size = helper.scale_1d_pos(img_size);
+ img.paint_at(
+ ui,
+ helper
+ .get_animation_rect()
+ .shrink((max_size - cur_img_size) / 2.0),
+ );
+
+ helper.take_animation_response()
+ }
+}
diff --git a/crates/notedeck_columns/src/ui/side_panel.rs b/crates/notedeck_columns/src/ui/side_panel.rs
@@ -444,33 +444,6 @@ fn add_deck_button() -> impl Widget {
}
}
-fn _wallet_button() -> impl Widget {
- |ui: &mut egui::Ui| -> egui::Response {
- let img_size = 24.0;
-
- let max_size = img_size * ICON_EXPANSION_MULTIPLE;
- let img_data = egui::include_image!("../../../../assets/icons/wallet-icon.svg");
-
- let mut img = egui::Image::new(img_data).max_width(img_size);
-
- if !ui.visuals().dark_mode {
- img = img.tint(egui::Color32::BLACK);
- }
-
- let helper = AnimationHelper::new(ui, "wallet-icon", vec2(max_size, max_size));
-
- let cur_img_size = helper.scale_1d_pos(img_size);
- img.paint_at(
- ui,
- helper
- .get_animation_rect()
- .shrink((max_size - cur_img_size) / 2.0),
- );
-
- helper.take_animation_response()
- }
-}
-
fn show_decks<'a>(
ui: &mut egui::Ui,
decks_cache: &'a DecksCache,