mirror of
https://github.com/DefectingCat/DefectingCat.github.io
synced 2025-07-16 09:11:38 +00:00
Add gists pages ISR
Add octokit error catch
This commit is contained in:
@ -2,7 +2,7 @@ import { Octokit } from 'octokit';
|
|||||||
import { GistsFile } from 'types';
|
import { GistsFile } from 'types';
|
||||||
|
|
||||||
const password = process.env.NEXT_PUBLIC_GITHUB_API;
|
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({
|
const octokit = new Octokit({
|
||||||
auth: password,
|
auth: password,
|
||||||
baseUrl: host,
|
baseUrl: host,
|
||||||
@ -76,7 +76,11 @@ export const getGists = async (page = 1, perPage = 10) => {
|
|||||||
Object.keys(g.files).map(async (f) => {
|
Object.keys(g.files).map(async (f) => {
|
||||||
const url = g.files[f].raw_url;
|
const url = g.files[f].raw_url;
|
||||||
if (!url) return;
|
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);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
|
@ -4,8 +4,8 @@ import MainLayout from 'layouts/common/main-layout';
|
|||||||
import { GetGists, getGists, GetUser, getUser } from 'lib/fetcher';
|
import { GetGists, getGists, GetUser, getUser } from 'lib/fetcher';
|
||||||
import { GetStaticPaths, GetStaticProps, InferGetStaticPropsType } from 'next';
|
import { GetStaticPaths, GetStaticProps, InferGetStaticPropsType } from 'next';
|
||||||
import dynamic from 'next/dynamic';
|
import dynamic from 'next/dynamic';
|
||||||
import { ParsedUrlQuery } from 'querystring';
|
|
||||||
import { ReactElement, Suspense } from 'react';
|
import { ReactElement, Suspense } from 'react';
|
||||||
|
import { useRouter } from 'next/router';
|
||||||
|
|
||||||
const UserInfo = dynamic(() => import('components/gists/user-info'), {
|
const UserInfo = dynamic(() => import('components/gists/user-info'), {
|
||||||
suspense: true,
|
suspense: true,
|
||||||
@ -26,6 +26,12 @@ const Gists = ({
|
|||||||
next,
|
next,
|
||||||
total,
|
total,
|
||||||
}: InferGetStaticPropsType<typeof getStaticProps>) => {
|
}: InferGetStaticPropsType<typeof getStaticProps>) => {
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
|
if (router.isFallback) {
|
||||||
|
return <>Loading...</>;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<main className="max-w-5xl px-4 mx-auto lg:px-0">
|
<main className="max-w-5xl px-4 mx-auto lg:px-0">
|
||||||
@ -55,27 +61,27 @@ const Gists = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const getStaticPaths: GetStaticPaths = async () => {
|
export const getStaticPaths: GetStaticPaths = async () => {
|
||||||
const result = await getGists();
|
// const result = await getGists();
|
||||||
const next = Number(result?.pageSize.next);
|
// const next = Number(result?.pageSize.next);
|
||||||
const last = Number(result?.pageSize.last);
|
// const last = Number(result?.pageSize.last);
|
||||||
const paths: (
|
// const paths: (
|
||||||
| string
|
// | string
|
||||||
| {
|
// | {
|
||||||
params: ParsedUrlQuery;
|
// params: ParsedUrlQuery;
|
||||||
locale?: string | undefined;
|
// locale?: string | undefined;
|
||||||
}
|
// }
|
||||||
)[] = [];
|
// )[] = [];
|
||||||
for (let i = next; i <= last; i++) {
|
// for (let i = next; i <= last; i++) {
|
||||||
paths.push({
|
// paths.push({
|
||||||
params: {
|
// params: {
|
||||||
p: i.toString(),
|
// p: i.toString(),
|
||||||
},
|
// },
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
|
|
||||||
return {
|
return {
|
||||||
paths,
|
paths: [],
|
||||||
fallback: false,
|
fallback: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user