import { parseResultFilters, getFilteredSubmissions } from "@/lib/form/admin-form-results"; import { getDiscordMemberProfile } from "@/lib/discord/discord"; import { RealtimeRefresh } from "@/components/realtime-refresh"; import ResultsClient from "./client"; export const dynamic = "force-dynamic"; export default async function ResultsListPage({ params, searchParams, }: { params: Promise<{ id: string }>; searchParams: Promise>; }) { const [{ id }, rawFilters] = await Promise.all([params, searchParams]); const initialFilters = parseResultFilters(rawFilters); const { rows } = await getFilteredSubmissions(id, parseResultFilters({}), { paginate: false, }); const discordIds = [ ...new Set( rows .map((row) => row.userDiscordId) .filter((value): value is string => Boolean(value)) ), ]; const profiles = Object.fromEntries( await Promise.all( discordIds.map(async (discordId) => [ discordId, await getDiscordMemberProfile(discordId), ]) ) ); return ( <> ({ id: row.id, userName: row.userName, userDiscordId: row.userDiscordId, submittedAt: row.submittedAt.toISOString(), adminNote: row.adminNote, editHistory: Array.isArray(row.editHistory) ? row.editHistory : [], }))} profiles={profiles} /> ); }