Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 6x 190x 6x 19x 2337x 494x 19x 190x | import React from "react"; import { Link, withPrefix } from "gatsby"; import * as style from "./index.module.scss"; import ReactGA from "react-ga4"; import dayjs from "dayjs"; import { AllPost } from "../entity"; const yearLink = ({ year }: { year: string }) => ( <Link to={withPrefix(`/${year}/`)} title={`Articles written in ${year}`} onClick={() => ReactGA.event({ category: "Archive", action: `push Archive ${year}` }) } > {year} </Link> ); const Archive = ({ allPosts }: { allPosts: AllPost[] }) => { const yearList = Array.from( new Set( allPosts.map((data) => dayjs(data.node.frontmatter.date).format("YYYY")) ) ).sort((a, b) => (a < b ? 1 : -1)); return ( <div className={style.archive} data-testid="Archive"> <p> <span className="icon-calendar" /> Archives </p> {yearList.map((year) => yearLink({ year }))} </div> ); }; export default Archive; |