diff --git a/lib/fetcher.ts b/lib/fetcher.ts index fa1d0f5..8a184ab 100644 --- a/lib/fetcher.ts +++ b/lib/fetcher.ts @@ -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); + } }) ); }) diff --git a/pages/gists/[p].tsx b/pages/gists/[p].tsx index becb02e..0e86858 100644 --- a/pages/gists/[p].tsx +++ b/pages/gists/[p].tsx @@ -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) => { + const router = useRouter(); + + if (router.isFallback) { + return <>Loading...; + } + return ( <>
@@ -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, }; };