All files / apps/web/src/pages/_protected admin.tsx

100% Statements 7/7
100% Branches 2/2
100% Functions 2/2
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24            332x     27x 27x 27x     27x   1x     29x        
import { createFileRoute, redirect } from "@tanstack/react-router";
 
import { AdminScreen } from "~app/features/admin/admin-screen";
import { getTitle } from "~web/utils/i18n";
import { getLoaderTrpcClient } from "~web/utils/trpc";
 
export const Route = createFileRoute("/_protected/admin")({
	component: AdminScreen,
	loader: async (ctx) => {
		await ctx.context.i18nContext.loadNamespaces("admin");
		const trpc = getLoaderTrpcClient(ctx.context);
		const user = await ctx.context.queryClient.fetchQuery(
			trpc.user.get.queryOptions(),
		);
		if (user.user.role !== "admin") {
			// oxlint-disable-next-line typescript/only-throw-error
			throw redirect({ to: "/" });
		}
	},
	head: ({ match }) => ({
		meta: [{ title: getTitle(match.context.i18nContext, "admin") }],
	}),
});