Files
create-better-t-stack/apps/cli/template/base/packages/client/src/routes/dashboard.tsx
2025-03-05 13:26:21 +05:30

42 lines
977 B
TypeScript

import { authClient } from "@/lib/auth-client";
import { trpc } from "@/utils/trpc";
import { createFileRoute } from "@tanstack/react-router";
import { useEffect } from "react";
export const Route = createFileRoute("/dashboard")({
component: RouteComponent,
loader: async ({ context: { trpcQueryUtils } }) => {
await trpcQueryUtils.healthCheck.ensureData();
await trpcQueryUtils.privateData.ensureData();
return;
},
});
function RouteComponent() {
const { data: session, isPending } = authClient.useSession();
const navigate = Route.useNavigate();
const privateData = trpc.privateData.useQuery();
useEffect(() => {
if (!session && !isPending) {
navigate({
to: "/",
});
}
}, [session, isPending]);
if (isPending) {
return <div>Loading...</div>;
}
return (
<div>
<h1>Dashboard</h1>
<p>Welcome {session?.user.name}</p>
<p>privateData: {privateData.data?.message}</p>
</div>
);
}