Add gists pages ISR

Add octokit error catch
This commit is contained in:
DefectingCat
2023-02-07 10:44:24 +08:00
parent faca7369f3
commit 5b8c900493
2 changed files with 32 additions and 22 deletions

View File

@ -2,7 +2,7 @@ import { Octokit } from 'octokit';
import { GistsFile } from 'types';
const password = process.env.NEXT_PUBLIC_GITHUB_API;
const host = process.env.NEXT_PUBLIC_GISTS_HOST ?? 'http://api.github.com';
const host = process.env.NEXT_PUBLIC_GISTS_HOST ?? 'https://api.github.com';
const octokit = new Octokit({
auth: password,
baseUrl: host,
@ -76,7 +76,11 @@ export const getGists = async (page = 1, perPage = 10) => {
Object.keys(g.files).map(async (f) => {
const url = g.files[f].raw_url;
if (!url) return;
g.files[f].content = await fetch(url).then((res) => res.text());
try {
g.files[f].content = await fetch(url).then((res) => res.text());
} catch (err) {
console.log(err);
}
})
);
})

View File

@ -4,8 +4,8 @@ import MainLayout from 'layouts/common/main-layout';
import { GetGists, getGists, GetUser, getUser } from 'lib/fetcher';
import { GetStaticPaths, GetStaticProps, InferGetStaticPropsType } from 'next';
import dynamic from 'next/dynamic';
import { ParsedUrlQuery } from 'querystring';
import { ReactElement, Suspense } from 'react';
import { useRouter } from 'next/router';
const UserInfo = dynamic(() => import('components/gists/user-info'), {
suspense: true,
@ -26,6 +26,12 @@ const Gists = ({
next,
total,
}: InferGetStaticPropsType<typeof getStaticProps>) => {
const router = useRouter();
if (router.isFallback) {
return <>Loading...</>;
}
return (
<>
<main className="max-w-5xl px-4 mx-auto lg:px-0">
@ -55,27 +61,27 @@ const Gists = ({
};
export const getStaticPaths: GetStaticPaths = async () => {
const result = await getGists();
const next = Number(result?.pageSize.next);
const last = Number(result?.pageSize.last);
const paths: (
| string
| {
params: ParsedUrlQuery;
locale?: string | undefined;
}
)[] = [];
for (let i = next; i <= last; i++) {
paths.push({
params: {
p: i.toString(),
},
});
}
// const result = await getGists();
// const next = Number(result?.pageSize.next);
// const last = Number(result?.pageSize.last);
// const paths: (
// | string
// | {
// params: ParsedUrlQuery;
// locale?: string | undefined;
// }
// )[] = [];
// for (let i = next; i <= last; i++) {
// paths.push({
// params: {
// p: i.toString(),
// },
// });
// }
return {
paths,
fallback: false,
paths: [],
fallback: true,
};
};