import { Metaobject, PageType } from 'lib/shopify/types'; import { Suspense } from 'react'; import AccordionBlock from './accordion-block'; import CategoryPreview, { CategoryPreviewPlaceholder } from './category-preview'; import IconWithTextBlock, { IconBlockPlaceholder } from './icon-with-text-block'; import ImageWithTextBlock from './image-with-text-block'; import TextBlock from './text-block'; const PageContent = ({ block }: { block: Metaobject }) => { // eslint-disable-next-line no-unused-vars const contentMap: Record<PageType, (block: Metaobject) => JSX.Element> = { icon_content_section: (block) => ( <Suspense fallback={<IconBlockPlaceholder />}> <IconWithTextBlock block={block} /> </Suspense> ), image: (block) => <ImageWithTextBlock block={block} />, page_section: (block) => <TextBlock block={block} />, accordion: (block) => <AccordionBlock block={block} />, category_preview: (block) => ( <Suspense fallback={<CategoryPreviewPlaceholder />}> <CategoryPreview block={block} /> </Suspense> ) }; return contentMap[block.type as PageType](block); }; export default PageContent;