pages/contrib/maybe-good-first-bugs.js (41 lines of code) (raw):

import useSWR from 'swr'; import Error from 'next/error'; import Contrib from 'components/Contrib'; import { formatContribData } from 'lib/utils/contrib'; import { getApiURL } from 'lib/utils'; const maybeGoodFirstBugsURL = getApiURL('/api/gh-maybe-good-first-bugs/'); export async function getServerSideProps() { const res = await fetch(maybeGoodFirstBugsURL); const errorCode = res.ok ? false : res.status; const maybeGoodFirstBugsData = await res.json(); return { props: { errorCode, maybeGoodFirstBugsData, }, }; } const MaybeGoodFirstBugs = (props) => { if (props.errorCode) { return <Error statusCode={props.errorCode} />; } const { maybeGoodFirstBugsData: initialMaybeGoodFirstBugsData } = props; const { data: maybeGoodFirstBugsData } = useSWR( maybeGoodFirstBugsURL, async () => { const result = await fetch(maybeGoodFirstBugsURL); const json = await result.json(); return json; }, { fallbackData: initialMaybeGoodFirstBugsData, refreshInterval: 30000 }, ); return ( <Contrib contribData={formatContribData( maybeGoodFirstBugsData.data.maybe_good_first_bugs.results, )} hasAssignments /> ); }; export default MaybeGoodFirstBugs;