import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import useSWR from "swr"; import { DEV_MODE } from "../../env"; import { HydrationData } from "../../../../libs/types/hydration"; import { HOMEPAGE, HOMEPAGE_ITEMS } from "../../telemetry/constants"; import "./index.scss"; dayjs.extend(relativeTime); function RecentContributions(props: HydrationData) { const fallbackData = props.hyData ? props : undefined; const { data: { hyData } = {} } = useSWR( "./index.json", async (url) => { const response = await fetch(url); if (!response.ok) { const text = await response.text(); throw new Error(`${response.status} on ${url}: ${text}`); } return await response.json(); }, { fallbackData, revalidateOnFocus: DEV_MODE, revalidateOnMount: !fallbackData, } ); return hyData?.recentContributions ? (

Recent contributions

    {hyData.recentContributions.items.map( ({ number, url, title, updated_at, repo }, index) => (
  • {title} {repo.name}

    {dayjs(updated_at).fromNow()}
  • ) )}
) : null; } export default RecentContributions;