- mission-control dashboard: now strip, tournament quick actions, usage sparklines, error feed, live activity, tools list - /admin/telemetry with functions/events/errors/players/usage child routes, hand-rolled svg chart primitives, decomposed activities table - error browser with grouping and mark-resolved - consolidated per-tournament enrollment screen; hub simplified with run tournament promoted - /admin/activities redirects to /admin/telemetry/functions
29 lines
967 B
TypeScript
29 lines
967 B
TypeScript
import { createFileRoute } from "@tanstack/react-router";
|
|
import { Suspense } from "react";
|
|
import { prefetchServerQuery } from "@/lib/tanstack-query/utils/prefetch";
|
|
import { ActivitiesTable, activityQueries } from "@/features/activities";
|
|
import { playerQueries } from "@/features/players";
|
|
import { ListSkeleton } from "@/components/skeletons";
|
|
|
|
export const Route = createFileRoute("/_authed/admin/telemetry/functions")({
|
|
component: FunctionsTab,
|
|
beforeLoad: ({ context }) => {
|
|
const queryClient = context.queryClient;
|
|
prefetchServerQuery(queryClient, activityQueries.search());
|
|
prefetchServerQuery(queryClient, playerQueries.list());
|
|
},
|
|
loader: () => ({
|
|
withPadding: false,
|
|
fullWidth: true,
|
|
refresh: [activityQueries.search().queryKey],
|
|
}),
|
|
});
|
|
|
|
function FunctionsTab() {
|
|
return (
|
|
<Suspense fallback={<ListSkeleton rows={8} withSearch withSubtitle withTrailing="text" />}>
|
|
<ActivitiesTable />
|
|
</Suspense>
|
|
);
|
|
}
|