use leptos::prelude::*; use crate::api; use crate::i18n::*; #[component] pub fn ForgotPasswordPage() -> impl IntoView { let i18n = use_i18n(); let email = RwSignal::new(String::new()); let pending = RwSignal::new(false); let sent = RwSignal::new(false); let error = RwSignal::new(String::new()); let submit = move |ev: leptos::ev::SubmitEvent| { ev.prevent_default(); if pending.get() { return; } pending.set(true); error.set(String::new()); let e = email.get(); wasm_bindgen_futures::spawn_local(async move { match api::post_forgot_password(&e).await { Ok(()) => { sent.set(true); } Err(e) => { error.set(e); } } pending.set(false); }); }; view! {

{t!(i18n, forgot_password_title)}

{move || if sent.get() { view! {

{t!(i18n, forgot_password_sent)}

}.into_any() } else { view! {
{move || if !error.get().is_empty() { view! {

{ error.get() }

}.into_any() } else { view! { }.into_any() }} }.into_any() }}
{t!(i18n, sign_in)}
} }