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 | 1x 6x 6x 1x | import React from "react";
import { Newspaper } from "lucide-react";
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}>
<div className={style.sectionHeader} data-testid="latestArticleCount">
<Newspaper
size={16}
aria-hidden="true"
style={{ verticalAlign: "-0.125em" }}
/>
Recent posts <span className={style.count}>6 / {totalCount}</span>
</div>
{posts.map(({ node }) => (
<a
href={node.frontmatter.url || node.frontmatter.slug || node.fields.slug}
key={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}
</a>
))}
</div>
);
export default LatestPost;
|