elevate-rehab-v3

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

blocks-renderer.tsx (1050B)


      1 import type { Page, PageBlocks } from "../tina/__generated__/types";
      2 import { Content } from "./blocks/content";
      3 import { Features } from "./blocks/features";
      4 import { Hero } from "./blocks/hero";
      5 import { Testimonial } from "./blocks/testimonial";
      6 import { tinaField } from "tinacms/dist/react";
      7 
      8 export const Blocks = (props: Omit<Page, "id" | "_sys" | "_values">) => {
      9   return (
     10     <>
     11       {props.blocks
     12         ? props.blocks.map(function (block, i) {
     13             return (
     14               <div key={i} data-tina-field={tinaField(block)}>
     15                 <Block {...block} />
     16               </div>
     17             );
     18           })
     19         : null}
     20     </>
     21   );
     22 };
     23 
     24 const Block = (block: PageBlocks) => {
     25   switch (block.__typename) {
     26     case "PageBlocksContent":
     27       return <Content data={block} />;
     28     case "PageBlocksHero":
     29       return <Hero data={block} />;
     30     case "PageBlocksFeatures":
     31       return <Features data={block} />;
     32     case "PageBlocksTestimonial":
     33       return <Testimonial data={block} />;
     34     default:
     35       return null;
     36   }
     37 };