commit 1cf7e9e3d1e31acbeba76e0e610a307376b6334b
parent ebec367809bc9e8579a587a5a1e3c9f418704319
Author: kernelkind <kernelkind@gmail.com>
Date: Sat, 15 Mar 2025 12:58:47 -0400
wallet side panel button
Signed-off-by: kernelkind <kernelkind@gmail.com>
Diffstat:
2 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/assets/icons/wallet-icon.svg b/assets/icons/wallet-icon.svg
@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path opacity="0.12" d="M11.8667 14C12.6134 14 12.9868 14 13.272 13.8547C13.5229 13.7269 13.7269 13.5229 13.8547 13.272C14 12.9868 14 12.6134 14 11.8667V7.46671C14 6.71997 14 6.3466 13.8547 6.06139C13.7269 5.81051 13.5229 5.60653 13.272 5.4787C12.9868 5.33337 12.6134 5.33337 11.8667 5.33337H4.13333C3.3866 5.33337 3.01323 5.33337 2.72801 5.4787C2.47713 5.60653 2.27315 5.8105 2.14533 6.06139C2 6.3466 2 6.71997 2 7.46671V11.8667C2 12.6134 2 12.9868 2.14533 13.272C2.27315 13.5229 2.47713 13.7269 2.72801 13.8547C3.01323 14 3.38659 14 4.13333 14H11.8667Z" fill="white"/>
+<path d="M10.6667 5.33322V3.00032C10.6667 2.44583 10.6667 2.16858 10.5499 1.9982C10.4478 1.84934 10.2897 1.74821 10.1119 1.71794C9.9082 1.68329 9.65647 1.79947 9.153 2.03183L3.23934 4.76121C2.79034 4.96845 2.56583 5.07207 2.40141 5.23277C2.25604 5.37483 2.14508 5.54825 2.077 5.73977C2 5.95641 2 6.20367 2 6.6982V9.99987M11 9.66653H11.0067M2 7.46653V11.8665C2 12.6133 2 12.9867 2.14533 13.2719C2.27315 13.5227 2.47713 13.7267 2.72801 13.8545C3.01323 13.9999 3.38659 13.9999 4.13333 13.9999H11.8667C12.6134 13.9999 12.9868 13.9999 13.272 13.8545C13.5229 13.7267 13.7269 13.5227 13.8547 13.2719C14 12.9867 14 12.6133 14 11.8665V7.46653C14 6.7198 14 6.34645 13.8547 6.06123C13.7269 5.81035 13.5229 5.60637 13.272 5.47855C12.9868 5.33322 12.6134 5.33322 11.8667 5.33322H4.13333C3.3866 5.33322 3.01323 5.33322 2.72801 5.47854C2.47713 5.60637 2.27315 5.81035 2.14533 6.06123C2 6.34645 2 6.7198 2 7.46653ZM11.3333 9.66653C11.3333 9.85067 11.1841 9.99987 11 9.99987C10.8159 9.99987 10.6667 9.85067 10.6667 9.66653C10.6667 9.48247 10.8159 9.3332 11 9.3332C11.1841 9.3332 11.3333 9.48247 11.3333 9.66653Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>
diff --git a/crates/notedeck_columns/src/ui/side_panel.rs b/crates/notedeck_columns/src/ui/side_panel.rs
@@ -54,6 +54,7 @@ pub enum SidePanelAction {
SwitchDeck(usize),
EditDeck(usize),
SaveTheme(ThemePreference),
+ Wallet,
}
pub struct SidePanelResponse {
@@ -215,6 +216,8 @@ impl<'a> DesktopSidePanel<'a> {
let support_resp = ui.add(support_button());
+ let wallet_resp = ui.add(wallet_button());
+
let optional_inner = if pfp_resp.clicked() {
Some(egui::InnerResponse::new(
SidePanelAction::Account,
@@ -235,6 +238,11 @@ impl<'a> DesktopSidePanel<'a> {
SidePanelAction::SaveTheme(theme),
resp,
))
+ } else if wallet_resp.clicked() {
+ Some(egui::InnerResponse::new(
+ SidePanelAction::Wallet,
+ wallet_resp,
+ ))
} else {
None
};
@@ -377,6 +385,18 @@ impl<'a> DesktopSidePanel<'a> {
SidePanelAction::SaveTheme(theme) => {
theme_handler.save(theme);
}
+ SidePanelAction::Wallet => 's: {
+ if router
+ .routes()
+ .iter()
+ .any(|r| matches!(r, Route::Wallet(_)))
+ {
+ router.go_back();
+ break 's;
+ }
+
+ router.route_to(Route::Wallet(notedeck::WalletType::Auto));
+ }
}
switching_response
}
@@ -592,6 +612,33 @@ 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,