Skip to content

Commit f129562

Browse files
authored
Merge pull request #570 from PotLock/ssr-4
SSR - static paths
2 parents 71b49d1 + 3b1b7a1 commit f129562

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

src/pages/campaign/[campaignId]/index.tsx

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,31 @@ CampaignPage.getLayout = function getLayout(page: ReactElement) {
5151
return <CampaignLayout>{page}</CampaignLayout>;
5252
};
5353

54-
export const getStaticPaths: GetStaticPaths = async () => ({
55-
paths: [],
56-
fallback: "blocking",
57-
});
54+
export const getStaticPaths: GetStaticPaths = async () => {
55+
try {
56+
const response = await fetch(`https://dev.potlock.io/api/v1/campaigns?page_size=200`, {
57+
headers: { "content-type": "application/json" },
58+
});
59+
60+
if (!response.ok) {
61+
return { paths: [], fallback: "blocking" };
62+
}
63+
64+
const payload = (await response.json()) as {
65+
results?: { on_chain_id: number | string }[];
66+
data?: { on_chain_id: number | string }[];
67+
};
68+
69+
const campaigns = payload.results ?? payload.data ?? [];
70+
71+
return {
72+
paths: campaigns.map((c) => ({ params: { campaignId: String(c.on_chain_id) } })),
73+
fallback: "blocking",
74+
};
75+
} catch {
76+
return { paths: [], fallback: "blocking" };
77+
}
78+
};
5879

5980
export const getStaticProps: GetStaticProps<CampaignPageProps> = async (context) => {
6081
const { campaignId } = context.params as { campaignId?: string };

0 commit comments

Comments
 (0)