_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;