_includes/resources/playlist/PlaylistsLayout.11ty.tsx (24 lines of code) (raw):

import { ReferenceLayout } from "../../layouts/ReferenceLayout.11y"; import { LayoutContext, LayoutProps } from "../../../src/models"; import ResourceCard from "../../resourcecard/ResourceCard.11ty"; import { ResourceFrontmatter } from "../../../src/ResourceModels"; import { Playlist } from "./PlaylistModels"; import { Fragment } from "jsx-async-runtime/jsx-dev-runtime"; export type PlaylistsLayoutProps = LayoutProps & ResourceFrontmatter; export function PlaylistsLayout( this: LayoutContext, data: PlaylistsLayoutProps, ): JSX.Element { const { content, pagination } = data; const paginationItems = pagination ? pagination.items : []; const playlists: Playlist[] = paginationItems.map((p: any) => { return this.getResource(p.url) as Playlist; }); const listing = ( <Fragment> {playlists.map((playlist) => { return <ResourceCard resource={playlist}></ResourceCard>; })} </Fragment> ); return <ReferenceLayout {...data} content={content} listing={listing} />; } export const render = PlaylistsLayout;