//! Users list page component. use leptos::prelude::*; use crate::components::{Card, EmptyState, PageHeader, Pagination, SearchForm, StatusBadge}; use crate::hooks::{use_fetch, use_pagination}; use crate::models::UserSummary; use crate::utils::build_paginated_url; /// Users page component. #[component] pub fn UsersPage() -> impl IntoView { let pagination = use_pagination(); // Fetch users using the new hook let users = use_fetch::>(move || { build_paginated_url( "/api/admin/users", pagination.page.get(), &pagination.search_query.get(), 25, ) }); view! { "Create User" "Loading users..."

}> {move || { users.get().map(|maybe_users: Option>| { match maybe_users { Some(user_list) if !user_list.is_empty() => { view! {
{user_list.into_iter().map(|user| { view! { } }).collect_view()}
"Username" "Display Name" "Email" "Status" "Created"
{user.username} {user.display_name} {user.email.unwrap_or_else(|| "-".to_string())} {user.created_at}
}.into_any() } _ => view! { }.into_any() } }) }}
} }