File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ export default function HTMLEmbed ( props : any ) {
2+ const { html } = props ;
3+ if ( ! html ) {
4+ return < div > Hello World!</ div > ;
5+ }
6+ return < div dangerouslySetInnerHTML = { { __html : html } } />
7+ }
Original file line number Diff line number Diff line change @@ -20,6 +20,8 @@ import BlockCode from "@/components/block-code";
2020import TwitterEmbed from "@/components/twitter-embed" ;
2121import CodePenEmbed from "@/components/codepen-embed" ;
2222import CodeSandboxEmbed from "./codesandbox-embed" ;
23+ import HTMLEmbed from "@/components/html-embed" ;
24+
2325
2426export default function CustomPortableText ( {
2527 className,
@@ -36,6 +38,7 @@ export default function CustomPortableText({
3638 codepen : ( { value } ) => < CodePenEmbed { ...value } /> ,
3739 codesandbox : ( { value } ) => < CodeSandboxEmbed { ...value } /> ,
3840 twitter : ( { value } ) => < TwitterEmbed { ...value } /> ,
41+ htmlBlock : ( { value } ) => < HTMLEmbed { ...value } /> ,
3942 } ,
4043 block : {
4144 h5 : ( { children } ) => (
Original file line number Diff line number Diff line change 1+ import React from "react" ;
2+ // TODO: Add stronger typing
3+ const HTMLPreview = ( props : any ) => {
4+ const { html } = props ;
5+ if ( ! html ) {
6+ return < div > Add some HTML</ div > ;
7+ }
8+ return < div dangerouslySetInnerHTML = { { __html : html } } />
9+ } ;
10+
11+ const preview = ( props : any ) => < HTMLPreview { ...props } /> ;
12+
13+ export default preview ;
Original file line number Diff line number Diff line change 1+ import { defineType } from "sanity" ;
2+ import { FaHtml5 } from "react-icons/fa6" ;
3+ import preview from "../../components/HTMLPreview" ;
4+
5+ export default defineType ( {
6+ name : "htmlBlock" ,
7+ type : "object" ,
8+ icon : FaHtml5 ,
9+ components : {
10+ preview,
11+ } ,
12+ preview : {
13+ select : {
14+ html : "html" ,
15+ } ,
16+ } ,
17+ fields : [
18+ {
19+ name : "html" ,
20+ type : "text" ,
21+ title : "Raw HTML" ,
22+ } ,
23+ ] ,
24+ initialValue : {
25+ html : "<div>Hello World</div>" ,
26+ } ,
27+ } ) ;
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ import internalLink from "../custom/internalLink";
1212// Custom schemas (need imported in sanity.config.ts)
1313import codepen from "../custom/codepen" ;
1414import codesandbox from "../custom/codesandbox" ;
15+ import html from "../custom/html" ;
1516import twitter from "../custom/twitter-embed" ;
1617
1718const baseType = defineType ( {
@@ -94,6 +95,7 @@ const baseType = defineType({
9495 defineArrayMember ( codepen ) ,
9596 defineArrayMember ( codesandbox ) ,
9697 defineArrayMember ( twitter ) ,
98+ defineArrayMember ( html ) ,
9799 ] ,
98100 } ) ,
99101 ] ,
You can’t perform that action at this time.
0 commit comments