From 346e705f36a94dc9ab3b6224aa406c965bd90815 Mon Sep 17 00:00:00 2001 From: jglad Date: Wed, 12 Feb 2025 21:54:26 +0100 Subject: [PATCH 1/2] fix compilation --- crates/notedeck_columns/src/ui/search_results.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/notedeck_columns/src/ui/search_results.rs b/crates/notedeck_columns/src/ui/search_results.rs index e3e9c91..5497faf 100644 --- a/crates/notedeck_columns/src/ui/search_results.rs +++ b/crates/notedeck_columns/src/ui/search_results.rs @@ -87,7 +87,7 @@ fn user_result<'a>( cache: &'a mut ImageCache, index: usize, width: f32, -) -> impl egui::Widget + use<'a> { +) -> impl egui::Widget + 'a { move |ui: &mut egui::Ui| -> egui::Response { let min_img_size = 48.0; let max_image = min_img_size * ICON_EXPANSION_MULTIPLE; From 030e76c046c4d90f9fe69c6705af1996be04edf3 Mon Sep 17 00:00:00 2001 From: jglad Date: Wed, 12 Feb 2025 21:59:16 +0100 Subject: [PATCH 2/2] hide nsec in account panel --- assets/icons/eye-dark.png | Bin 0 -> 4067 bytes assets/icons/eye-light.png | Bin 0 -> 3790 bytes assets/icons/eye-slash-dark.png | Bin 0 -> 4110 bytes assets/icons/eye-slash-light.png | Bin 0 -> 3837 bytes crates/notedeck_columns/src/login_manager.rs | 9 ++++ .../src/ui/account_login_view.rs | 40 ++++++++++++++++-- 6 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 assets/icons/eye-dark.png create mode 100644 assets/icons/eye-light.png create mode 100644 assets/icons/eye-slash-dark.png create mode 100644 assets/icons/eye-slash-light.png diff --git a/assets/icons/eye-dark.png b/assets/icons/eye-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..5c42d70b59acb2f9529065237cc2b7fe2c632887 GIT binary patch literal 4067 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
    7$6?4v*qEYl-oKXx(V?esknnp>RXq zE~TbB5jppdS;zOr&@W#PJ_(tYsr19pa5E5tSgkYdj;3*HAL{Jtiarsnx^5)C-aAw7 tk*Pn~wx4`@`2Rb%|2oOP-SJcMoo2}A>R@O7k0$__oIYnz@*mgO{{e8L*V6z1 literal 0 HcmV?d00001 diff --git a/assets/icons/eye-slash-dark.png b/assets/icons/eye-slash-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..cb07dde5226f9a3aaa900188ee8f9afacf2b183e GIT binary patch literal 4110 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 qF5&wqnLYa)8<{8FTM2;df)cj*%)Yr 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 aAJfxnkRYznStsvMz*yg0ulka6^#1@c9MY5k literal 0 HcmV?d00001 diff --git a/crates/notedeck_columns/src/login_manager.rs b/crates/notedeck_columns/src/login_manager.rs index 40dfe88..7fb176c 100644 --- a/crates/notedeck_columns/src/login_manager.rs +++ b/crates/notedeck_columns/src/login_manager.rs @@ -12,6 +12,7 @@ pub struct AcquireKeyState { error: Option, key_on_error: Option, should_create_new: bool, + show_password: bool, } impl<'a> AcquireKeyState { @@ -115,6 +116,14 @@ impl<'a> AcquireKeyState { ui.add_space(8.0); } + + pub fn toggle_password_visibility(&mut self) { + self.show_password = !self.show_password; + } + + pub fn password_visible(&self) -> bool { + self.show_password + } } fn show_error(ui: &mut egui::Ui, err: &AcquireKeyError) { diff --git a/crates/notedeck_columns/src/ui/account_login_view.rs b/crates/notedeck_columns/src/ui/account_login_view.rs index 5996baa..4771105 100644 --- a/crates/notedeck_columns/src/ui/account_login_view.rs +++ b/crates/notedeck_columns/src/ui/account_login_view.rs @@ -1,6 +1,8 @@ use crate::login_manager::AcquireKeyState; use crate::ui::{Preview, PreviewConfig}; -use egui::{Align, Button, Color32, Frame, InnerResponse, Margin, RichText, Vec2}; +use egui::{ + Align, Button, Color32, Frame, Image, InnerResponse, Margin, RichText, TextBuffer, Vec2, +}; use egui::{Layout, TextEdit}; use enostr::Keypair; use notedeck::fonts::get_font_size; @@ -38,7 +40,16 @@ impl<'a> AccountLoginView<'a> { }); ui.vertical_centered_justified(|ui| { - ui.add(login_textedit(self.manager)); + ui.horizontal(|ui| { + let available_width = ui.available_width(); + let button_width = 32.0; + let text_edit_width = available_width - button_width; + + ui.add_sized([text_edit_width, 40.0], login_textedit(self.manager)); + if eye_button(ui, self.manager.password_visible()).clicked() { + self.manager.toggle_password_visibility(); + } + }); ui.with_layout(Layout::left_to_right(Align::TOP), |ui| { let help_text_style = NotedeckTextStyle::Small; ui.add(egui::Label::new( @@ -105,7 +116,7 @@ fn login_button() -> Button<'static> { } fn login_textedit(manager: &mut AcquireKeyState) -> TextEdit { - manager.get_acquire_textedit(|text| { + let create_textedit: fn(&mut dyn TextBuffer) -> TextEdit = |text| { egui::TextEdit::singleline(text) .hint_text( RichText::new("Your key here...").text_style(NotedeckTextStyle::Body.text_style()), @@ -113,7 +124,28 @@ fn login_textedit(manager: &mut AcquireKeyState) -> TextEdit { .vertical_align(Align::Center) .min_size(Vec2::new(0.0, 40.0)) .margin(Margin::same(12.0)) - }) + }; + + let is_visible = manager.password_visible(); + let mut text_edit = manager.get_acquire_textedit(create_textedit); + if !is_visible { + text_edit = text_edit.password(true); + } + text_edit +} + +fn eye_button(ui: &mut egui::Ui, is_visible: bool) -> egui::Response { + let is_dark_mode = ui.visuals().dark_mode; + let icon = Image::new(if is_visible && is_dark_mode { + egui::include_image!("../../../../assets/icons/eye-dark.png") + } else if is_visible { + egui::include_image!("../../../../assets/icons/eye-light.png") + } else if is_dark_mode { + egui::include_image!("../../../../assets/icons/eye-slash-dark.png") + } else { + egui::include_image!("../../../../assets/icons/eye-slash-light.png") + }); + ui.add(Button::image(icon).frame(false)) } mod preview {