/* * This file is part of laurelin_client * Copyright (C) 2023 Jonni Liljamo * * Licensed under GPL-3.0-only. * See LICENSE for licensing information. */ use bevy::prelude::*; use bevy_egui::egui; use crate::{util::egui::password, plugins::RegisterCallEvent}; use super::{MenuData, MenuUIState}; pub fn view( ui: &mut egui::Ui, data: &mut MenuData, register_ev_w: &mut EventWriter, ) { ui.horizontal(|ui| { ui.label("Username:"); ui.text_edit_singleline(&mut data.register_username) }); ui.horizontal(|ui| { ui.label("Email:"); ui.text_edit_singleline(&mut data.register_email) }); ui.horizontal(|ui| { ui.label("Password:"); ui.add(password(&mut data.register_password)); }); ui.horizontal(|ui| { ui.label("Confirm password:"); ui.add(password(&mut data.register_password_confirm)); }); if !data.error.is_empty() { ui.label(egui::RichText::new(&data.error).color(egui::Color32::RED)); } ui.add_enabled_ui(data.register_password == data.register_password_confirm, |ui| { ui.with_layout(egui::Layout::right_to_left(egui::Align::TOP), |ui| { if ui.button("Register").clicked() { data.error.clear(); data.ui_state = MenuUIState::Loading; register_ev_w.send(RegisterCallEvent { username: data.register_username.clone(), email: data.register_email.clone(), password: data.register_password.clone(), }); } }); }); ui.vertical_centered(|ui| { ui.label("I have an account:"); if ui.link("Login").clicked() { data.ui_state = MenuUIState::Login; } }); }