use leptos::prelude::*; use leptos_router::{components::A, hooks::use_params_map}; use crate::api::{self, GameSummary, UserProfile}; use crate::i18n::*; #[component] pub fn ProfilePage() -> impl IntoView { let params = use_params_map(); let username = move || params.read().get("username").unwrap_or_default(); let profile = LocalResource::new(move || { let u = username(); async move { api::get_user_profile(&u).await } }); let i18n = use_i18n(); view! {
{t!(i18n, loading)}
}.into_any(), Some(Err(e)) => view! {{ e }
}.into_any(), Some(Ok(p)) => view! {{t!(i18n, loading)}
}.into_any(), Some(Err(e)) => view! {{ e }
}.into_any(), Some(Ok(r)) => { if r.games.is_empty() { view! {{t!(i18n, no_games)}
}.into_any() } else { view! {| {t!(i18n, col_room)} | {t!(i18n, col_started)} | {t!(i18n, col_ended)} | {t!(i18n, col_outcome)} | {t!(i18n, col_detail)} |
|---|---|---|---|---|
| { g.room_code.clone() } | { started } | { ended } | { outcome_text } | {t!(i18n, view_link)} |