import { PERMS } from "@/lib/permission-slugs"; import type { HousekeepingCapabilityContext, HousekeepingResult, } from "../../../foundation/contracts"; import type { HousekeepingPageInput } from "../../../route-handlers"; import { type PeopleUsersQueryData, peopleUsersQuery } from "../queries/users"; import { PeoplePageFrame } from "./page-state"; interface PeopleUsersPageProps { readonly context: HousekeepingCapabilityContext; readonly result?: HousekeepingResult; readonly partialDependencies?: readonly string[]; } export function PeopleUsersPage({ context, result, partialDependencies, }: PeopleUsersPageProps) { return ( data.kind === "users" && data.page.items.length === 0} > {(data) => data.kind === "users" ? (

{data.page.total} matching users

    {data.page.items.map((user) => (
  • {user.username} Rank {user.rank} {user.online ? "Online" : "Offline"} {user.mail !== null ? {user.mail} : null} {user.ipCurrent !== null ? ( {user.ipCurrent} ) : null} {context.has(PERMS.USERS_EDIT) ? ( Edit ) : null} {context.has(PERMS.USERS_BAN) ? ( Ban controls available ) : null}
  • ))}
) : null }
); } export async function renderPeopleUsersPage(input: HousekeepingPageInput) { const result = await peopleUsersQuery.run(input.context, { routeId: "people.users.list", list: {}, }); return ; }