Added more types
This commit is contained in:
@@ -5,6 +5,7 @@ import { Hero } from "./blocks/hero";
|
||||
import { Testimonial } from "./blocks/testimonial";
|
||||
import { tinaField } from "tinacms/dist/react";
|
||||
import { Carousel } from "./blocks/carousel";
|
||||
import { ReactElement } from "react";
|
||||
|
||||
export const Blocks = (props: Omit<Page, "id" | "_sys" | "_values">) => {
|
||||
return (
|
||||
@@ -22,7 +23,15 @@ export const Blocks = (props: Omit<Page, "id" | "_sys" | "_values">) => {
|
||||
);
|
||||
};
|
||||
|
||||
const Block = (block: PageBlocks) => {
|
||||
interface PageBlockProps<T = PageBlocks> {
|
||||
data: T
|
||||
}
|
||||
|
||||
export type PageBlockFunction<T = PageBlocks> = ({
|
||||
data
|
||||
}: PageBlockProps<T>) => ReactElement;
|
||||
|
||||
const Block = (block: PageBlocks): ReactElement<PageBlockProps, PageBlockFunction> => {
|
||||
switch (block.__typename) {
|
||||
case "PageBlocksContent":
|
||||
return <Content data={ block } />;
|
||||
|
||||
Reference in New Issue
Block a user