
import { UserButton } from "@clerk/nextjs";
import { getAuth } from "@clerk/nextjs/server";
import { GetServerSidePropsContext, type NextPage } from "next";
import { createInnerTRPCContext } from "../server/api/trpc";
import { createProxySSGHelpers } from "@trpc/react-query/ssg";
import { appRouter } from "../server/api/root";
import SuperJSON from "superjson";
import { api } from "../utils/api";
export const getServerSideProps = async ({
req,
}: GetServerSidePropsContext) => {
const auth = getAuth(req); // Error here
const ssg = createProxySSGHelpers({
router: appRouter,
ctx: createInnerTRPCContext({ auth }),
transformer: SuperJSON,
});
await ssg.example.hello.prefetch({ text: "from Clerk" });
return { props: { trpcState: ssg.dehydrate() } };
};
const Protected: NextPage = () => {
const hello = api.example.hello.useQuery({ text: "from Clerk" });
return (
<main className="flex min-h-screen flex-col items-center justify-center bg-gradient-to-b from-[#2e026d] to-[#15162c]">
<div className="container flex flex-col items-center justify-center gap-12 px-4 py-16 ">
<h1 className="text-5xl font-extrabold tracking-tight text-white sm:text-[5rem]">
Welcome to the{" "}
<span className="text-[hsl(280,100%,70%)]">Protected</span> Page
</h1>
<p className="text-2xl text-white">Click this User Button!</p>
<UserButton afterSignOutUrl="/" />
<p className="text-2xl text-white">
{hello.data ? hello.data.greeting : "Loading tRPC query..."}
</p>
</div>
</main>
);
};
export default Protected;