import Link from "next/link"; import { GetCurrenciesQuery, GetLibraryItemsPreviewQuery, } from "graphql/operations-types"; import { prettyDate, prettyPrice, prettyItemSubType } from "queries/helpers"; import Chip from "components/Chip"; import Img, { ImageQuality } from "components/Img"; import { useAppLayout } from "contexts/AppLayoutContext"; export type LibraryItemsPreviewProps = { className?: string; item: { slug: GetLibraryItemsPreviewQuery["libraryItems"]["data"][number]["attributes"]["slug"]; thumbnail: GetLibraryItemsPreviewQuery["libraryItems"]["data"][number]["attributes"]["thumbnail"]; title: GetLibraryItemsPreviewQuery["libraryItems"]["data"][number]["attributes"]["title"]; subtitle: GetLibraryItemsPreviewQuery["libraryItems"]["data"][number]["attributes"]["subtitle"]; price?: GetLibraryItemsPreviewQuery["libraryItems"]["data"][number]["attributes"]["price"]; categories: GetLibraryItemsPreviewQuery["libraryItems"]["data"][number]["attributes"]["categories"]; release_date?: GetLibraryItemsPreviewQuery["libraryItems"]["data"][number]["attributes"]["release_date"]; metadata?: GetLibraryItemsPreviewQuery["libraryItems"]["data"][number]["attributes"]["metadata"]; }; currencies?: GetCurrenciesQuery["currencies"]["data"]; }; export default function LibraryItemsPreview( props: LibraryItemsPreviewProps ): JSX.Element { const item = props.item; const appLayout = useAppLayout(); return (
{item.thumbnail.data ? ( ) : (
)}
{item.metadata && item.metadata.length > 0 && (
{prettyItemSubType(item.metadata[0])}
)}

{item.title}

{item.subtitle}

{item.categories.data.map((category) => ( {category.attributes.short} ))}
{(item.release_date || item.price) && (
{item.release_date && (

event {prettyDate(item.release_date)}

)} {item.price && props.currencies && (

shopping_cart {prettyPrice( item.price, props.currencies, appLayout.currency )}

)}
)}
); }