mirror of
https://github.com/lukevella/rallly.git
synced 2025-08-03 00:19:03 +02:00
🐛 Handle missing polls (#1455)
This commit is contained in:
parent
82ebcd8752
commit
983c6e24d5
3 changed files with 15 additions and 10 deletions
|
@ -1,4 +1,5 @@
|
|||
import { dehydrate, Hydrate } from "@tanstack/react-query";
|
||||
import { notFound } from "next/navigation";
|
||||
|
||||
import { createSSRHelper } from "@/trpc/server/create-ssr-helper";
|
||||
|
||||
|
@ -13,11 +14,16 @@ export default async function Layout({
|
|||
}) {
|
||||
const trpc = await createSSRHelper();
|
||||
|
||||
await Promise.all([
|
||||
trpc.polls.get.prefetch({ urlId: params.urlId }),
|
||||
const [poll] = await Promise.all([
|
||||
trpc.polls.get.fetch({ urlId: params.urlId }),
|
||||
trpc.polls.participants.list.prefetch({ pollId: params.urlId }),
|
||||
trpc.polls.comments.list.prefetch({ pollId: params.urlId }),
|
||||
]);
|
||||
|
||||
if (!poll) {
|
||||
notFound();
|
||||
}
|
||||
|
||||
return (
|
||||
<Hydrate state={dehydrate(trpc.queryClient)}>
|
||||
<Providers>{children}</Providers>
|
||||
|
|
|
@ -12,14 +12,13 @@ export default async function Layout({
|
|||
const trpc = await createSSRHelper();
|
||||
|
||||
// Prefetch all queries used in PollLayout
|
||||
await Promise.all([
|
||||
trpc.polls.get.prefetch({ urlId: params.urlId }),
|
||||
const [poll] = await Promise.all([
|
||||
trpc.polls.get.fetch({ urlId: params.urlId }),
|
||||
trpc.polls.participants.list.prefetch({ pollId: params.urlId }),
|
||||
trpc.polls.getWatchers.prefetch({ pollId: params.urlId }),
|
||||
trpc.polls.comments.list.prefetch({ pollId: params.urlId }),
|
||||
]);
|
||||
|
||||
const poll = await prisma.poll.findUnique({ where: { id: params.urlId } });
|
||||
if (!poll) {
|
||||
notFound();
|
||||
}
|
||||
|
@ -36,7 +35,10 @@ export async function generateMetadata({
|
|||
}: {
|
||||
params: { locale: string; urlId: string };
|
||||
}) {
|
||||
const poll = await prisma.poll.findUnique({ where: { id: params.urlId } });
|
||||
const poll = await prisma.poll.findUnique({
|
||||
where: { id: params.urlId },
|
||||
select: { title: true },
|
||||
});
|
||||
|
||||
if (!poll) {
|
||||
return notFound();
|
||||
|
|
|
@ -472,10 +472,7 @@ export const polls = router({
|
|||
});
|
||||
|
||||
if (!res) {
|
||||
throw new TRPCError({
|
||||
code: "NOT_FOUND",
|
||||
message: "Poll not found",
|
||||
});
|
||||
return null;
|
||||
}
|
||||
const inviteLink = shortUrl(`/invite/${res.id}`);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue