31 lines
1.0 KiB
TypeScript
31 lines
1.0 KiB
TypeScript
import TeamProfile from "@/features/teams/components/team-profile";
|
|
import { teamKeys, teamQueries } from "@/features/teams/queries";
|
|
import { ensureServerQueryData } from "@/lib/tanstack-query/utils/ensure";
|
|
import { prefetchServerQuery } from "@/lib/tanstack-query/utils/prefetch";
|
|
import { redirect, createFileRoute } from "@tanstack/react-router";
|
|
import { z } from "zod";
|
|
|
|
const searchSchema = z.object({
|
|
tab: z.string().optional(),
|
|
});
|
|
|
|
export const Route = createFileRoute("/_authed/teams/$teamId")({
|
|
validateSearch: searchSchema,
|
|
beforeLoad: async ({ params, context }) => {
|
|
const { queryClient } = context;
|
|
await prefetchServerQuery(queryClient, teamQueries.details(params.teamId));
|
|
},
|
|
loader: ({ params }) => ({
|
|
header: {
|
|
collapsed: true,
|
|
withBackButton: true,
|
|
},
|
|
refresh: [teamKeys.details(params.teamId), teamKeys.matches(params.teamId), teamKeys.stats(params.teamId)],
|
|
withPadding: false
|
|
}),
|
|
component: () => {
|
|
const { teamId } = Route.useParams();
|
|
return <TeamProfile id={teamId} />;
|
|
},
|
|
});
|