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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 5x 13x 78x | import React from "react";
import { Link, withPrefix } from "gatsby";
import ReactGA from "react-ga4";
import * as style from "./index.module.scss";
export type Post = {
node: {
frontmatter: {
url: string;
slug: string;
title: string;
};
fields: {
slug: string;
};
};
};
const LatestPost = ({
posts,
totalCount,
}: {
posts: Post[];
totalCount: number;
}) => (
<div className={style.latestPost}>
<p data-testid="latestArticleCount">
<span className="icon-newspaper-o" />
Recent posts 6 /
{totalCount}
</p>
{posts.map(({ node }) => (
<Link
to={withPrefix(
node.frontmatter.url || node.frontmatter.slug || node.fields.slug,
)}
key={withPrefix(
node.frontmatter.url || node.frontmatter.slug || node.fields.slug,
)}
onClick={() =>
ReactGA.event({
category: "User",
action: `Click latest-post item: ${node.fields.slug}`,
})
}
>
{node.frontmatter.title}
</Link>
))}
</div>
);
export default LatestPost;
|