_includes/resources/article/ArticlesLayout.11ty.tsx (31 lines of code) (raw):
import {
ReferenceLayout,
ReferenceLayoutProps,
} from "../../layouts/ReferenceLayout.11y";
import { LayoutContext } from "../../../src/models";
import ResourceCard from "../../resourcecard/ResourceCard.11ty";
import { Article } from "./ArticleModels";
import { Fragment } from "jsx-async-runtime/jsx-dev-runtime";
export default class ArticlesLayout {
data() {
return {
eleventyExcludeFromCollections: true,
title: "Articles",
subtitle:
"Visual, standalone, bite-sized learning resources organized into different categories.",
};
}
render(this: LayoutContext, data: ReferenceLayoutProps): JSX.Element {
const { content, pagination } = data;
const paginationItems = pagination ? pagination.items : [];
const articles: Article[] = paginationItems.map((t: any) => {
return this.getResource(t.url) as Article;
});
const listing = (
<Fragment>
{articles.map((tip) => {
return <ResourceCard resource={tip}></ResourceCard>;
})}
</Fragment>
);
return <ReferenceLayout {...data} listing={listing} content={content} />;
}
}