From a927c56870fa898944561b8b75bdee25d038ae81 Mon Sep 17 00:00:00 2001 From: kernelkind Date: Mon, 1 Apr 2024 11:04:48 -0400 Subject: [PATCH] Create account login panel Signed-off-by: kernelkind --- assets/Logo-Gradient-2x.png | Bin 0 -> 18616 bytes assets/Welcome to Nostrdeck 2x.png | Bin 0 -> 52397 bytes src/account_login_view.rs | 286 +++++++++++++++++++++++++++++ src/colors.rs | 10 + src/lib.rs | 1 + 5 files changed, 297 insertions(+) create mode 100644 assets/Logo-Gradient-2x.png create mode 100644 assets/Welcome to Nostrdeck 2x.png create mode 100644 src/account_login_view.rs diff --git a/assets/Logo-Gradient-2x.png b/assets/Logo-Gradient-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..714cb2f4d51f5087d1a6a1a310c39a3ae0676218 GIT binary patch literal 18616 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

GEgzpnfyrqyBG3Uh0C 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 z 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 { + ctx: &'a egui::Context, + manager: &'a mut LoginManager, + generate_y_intercept: Option, +} + +impl<'a> AccountLoginView<'a> { + pub fn new(ctx: &'a egui::Context, manager: &'a mut LoginManager) -> Self { + AccountLoginView { + ctx, + manager, + generate_y_intercept: None, + } + } + pub fn panel(&mut self) { + let frame = egui::CentralPanel::default().frame(Frame { + inner_margin: Margin::same(0.0), + fill: DARKER_BG, + ..Default::default() + }); + + let screen_width = self.ctx.screen_rect().max.x; + let screen_height = self.ctx.screen_rect().max.y; + + frame.show(self.ctx, |ui| { + let title_layer = LayerId::new(egui::Order::Background, Id::new("Title layer")); + + let mut top_panel_height: Option = None; + ui.with_layer_id(title_layer, |ui| { + egui::TopBottomPanel::top("Top") + .resizable(false) + .default_height(340.0) + .frame(Frame::none()) + .show_separator_line(false) + .show_inside(ui, |ui| { + top_panel_height = Some(ui.available_rect_before_wrap().bottom()); + self.top_title_area(ui); + }); + }); + + egui::TopBottomPanel::bottom("Bottom") + .resizable(false) + .frame(Frame::none()) + .show_separator_line(false) + .show_inside(ui, |ui| { + self.window(ui, top_panel_height.unwrap_or(0.0)); + }); + + let top_rect = Rect { + min: Pos2::ZERO, + max: Pos2::new( + screen_width, + self.generate_y_intercept.unwrap_or(screen_height * 0.5), + ), + }; + + ui.painter_at(top_rect) + .with_layer_id(LayerId::background()) + .rect_filled(top_rect, Rounding::ZERO, DARK_ISH_BG); + }); + } + + fn window(&mut self, ui: &mut Ui, top_panel_height: f32) { + let needed_height_over_top = (self.ctx.screen_rect().bottom() / 2.0) - 230.0; + let y_offset = if top_panel_height > needed_height_over_top { + top_panel_height - needed_height_over_top + } else { + 0.0 + }; + Window::new("Account login") + .movable(false) + .constrain(true) + .collapsible(false) + .drag_to_scroll(false) + .title_bar(false) + .resizable(false) + .anchor(Align2::CENTER_CENTER, [0f32, y_offset]) + .max_width(538.0) + .frame( + egui::Frame::default() + .fill(DARK_ISH_BG) + .rounding(egui::Rounding::from(32f32)) + .stroke(egui::Stroke::new(1.0, DARK_BG_1)) + .shadow(Shadow { + offset: [0.0, 8.0].into(), + blur: 24.0, + spread: 0.0, + color: egui::Color32::from_rgba_unmultiplied(0x6D, 0x6D, 0x6D, 0x14), + }), + ) + .show(ui.ctx(), |ui| { + ui.vertical_centered(|ui| { + ui.add_space(40.0); + ui.label( + RichText::new("Login") + .size(24f32) + .color(WHITE) + .strong() + .line_height(Some(36f32)), + ); + + ui.add_space(16f32); + + ui.label( + RichText::new("Enter your private key to start using Notedeck") + .size(13f32) + .color(GRAY_SECONDARY) + .line_height(Some(19.5)), + ); + + ui.add_space(24.0); + + Frame::none() + .outer_margin(Margin::symmetric(48.0, 0.0)) + .show(ui, |ui| { + self.login_form(ui); + }); + + ui.add_space(32.0); + + let y_margin: f32 = 24.0; + let generate_frame = egui::Frame::default() + .fill(Color32::from_rgb(0x26, 0x26, 0x26)) // TODO: gradient + .rounding(egui::Rounding::from(32f32)) + .stroke(egui::Stroke::new(1.0, DARK_BG_1)) + .inner_margin(Margin::symmetric(48.0, y_margin)); + + generate_frame.show(ui, |ui| { + self.generate_y_intercept = + Some(ui.available_rect_before_wrap().top() - y_margin); + self.generate_group(ui); + }); + }); + }); + } + + fn top_title_area(&mut self, ui: &mut egui::Ui) { + ui.vertical_centered(|ui| { + let logo_gradient_data = egui::include_image!("../assets/Logo-Gradient-2x.png"); + ui.add(egui::Image::new(logo_gradient_data).max_width(232.0)); + + ui.add_space(48.0); + + let welcome_data = egui::include_image!("../assets/Welcome to Nostrdeck 2x.png"); + ui.add(egui::Image::new(welcome_data).max_width(528.0)); + + ui.add_space(12.0); + + // ui.label( + // RichText::new("Welcome to Nostrdeck") + // .size(48.0) + // .strong() + // .line_height(Some(72.0)), + // ); + ui.label( + RichText::new("The best alternative to tweetDeck built in nostr protocol") + .size(24.0) + .line_height(Some(36.0)) + .color(ALMOST_WHITE), + ); + }); + } + + fn login_form(&mut self, ui: &mut egui::Ui) { + ui.vertical_centered_justified(|ui| { + ui.horizontal(|ui| { + ui.label( + RichText::new("Enter your key") + .color(WHITE) + .strong() + .line_height(Some(19.5f32)) + .size(13f32), + ); + }); + + ui.add_space(8f32); + + ui.add( + egui::TextEdit::singleline(&mut self.manager.login_key) + .hint_text( + RichText::new("Your key here...") + .size(13f32) + .line_height(Some(19.5f32)) + .color(GRAY_SECONDARY), + ) + .margin(Margin::symmetric(12.0, 12.0)) + .min_size(Vec2::new(440.0, 40.0)) + .vertical_align(Align::Center), + ); + + ui.add_space(8.0); + + ui.vertical_centered(|ui| { + if self.manager.promise.is_some() { + ui.add(egui::Spinner::new()); + } + }); + + if let Some(error_key) = &self.manager.key_on_error { + if self.manager.login_key != *error_key { + self.manager.error = None; + self.manager.key_on_error = None; + } + } + if let Some(err) = &self.manager.error { + ui.horizontal(|ui| { + let error_label = match err { + LoginError::InvalidKey => { + egui::Label::new(RichText::new("Invalid key.").color(RED_700)) + } + LoginError::Nip05Failed(e) => { + egui::Label::new(RichText::new(e).color(RED_700)) + } + }; + ui.add(error_label.truncate(true)); + }); + } + + ui.add_space(8.0); + + let login_button = Button::new( + RichText::new("Login now — let's do this!") + .line_height(Some(16.25f32)) + .strong() + .size(13f32) + .color(WHITE), + ) + .rounding(Rounding::same(8f32)) + .min_size(Vec2::new(442.0, 40.0)) + .fill(Color32::from_rgb(0xF8, 0x69, 0xB6)); // TODO: gradient + + if ui.add(login_button).clicked() { + self.manager.promise = Some(perform_key_retrieval(&self.manager.login_key)); + } + }); + } + + fn generate_group(&mut self, ui: &mut egui::Ui) { + ui.horizontal(|ui| { + ui.label( + RichText::new("New in nostr?") + .size(20f32) + .line_height(Some(30f32)) + .color(ALMOST_WHITE), + ); + + ui.label( + RichText::new(" — we got you!") + .size(20f32) + .line_height(Some(30f32)) + .color(GRAY_SECONDARY), + ); + }); + + ui.add_space(6.0); + + ui.horizontal(|ui| { + ui.label( + RichText::new("Quickly generate your keys. Make sure you save them safely.") + .color(GRAY_SECONDARY) + .size(13f32) + .line_height(Some(19.5f32)), + ); + }); + + ui.add_space(16.0); + + let generate_button = Button::new(RichText::new("Generate keys").color(WHITE)) + .fill(SEMI_DARKER_BG) + .min_size(Vec2::new(442.0, 40.0)) + .rounding(Rounding::same(8.0)); + if ui.add(generate_button).clicked() { + // TODO: keygen + } + } +} diff --git a/src/colors.rs b/src/colors.rs index 76454506..451da2f5 100644 --- a/src/colors.rs +++ b/src/colors.rs @@ -2,3 +2,13 @@ use egui::Color32; pub const PURPLE: Color32 = Color32::from_rgb(0xCC, 0x43, 0xC5); pub const DARK_BG: Color32 = egui::Color32::from_rgb(40, 44, 52); +pub const GRAY_SECONDARY: Color32 = Color32::from_rgb(0x8A, 0x8A, 0x8A); +pub const WHITE: Color32 = Color32::from_rgb(0xFF, 0xFF, 0xFF); +pub const ALMOST_WHITE: Color32 = Color32::from_rgb(0xFA, 0xFA, 0xFA); +pub const RED_700: Color32 = Color32::from_rgb(0xC7, 0x37, 0x5A); + +// BACKGROUNDS +pub const SEMI_DARKER_BG: Color32 = Color32::from_rgb(0x39, 0x39, 0x39); +pub const DARKER_BG: Color32 = Color32::from_rgb(0x1E, 0x1E, 0x1E); +pub const DARK_BG_1: Color32 = Color32::from_rgb(0x2C, 0x2C, 0x2C); +pub const DARK_ISH_BG: Color32 = egui::Color32::from_rgb(0x22, 0x22, 0x22); diff --git a/src/lib.rs b/src/lib.rs index 3e7a8fe0..16df2d87 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -20,6 +20,7 @@ mod colors; mod profile; mod key_parsing; mod login_manager; +mod account_login_view; #[cfg(test)] #[macro_use]