1- import { useRef } from 'react' ;
21import CodeLayout from 'react-code-preview-layout' ;
3- import { getMetaId , isMeta , getURLParameters } from 'markdown-react-code-preview-loader' ;
2+ import { getMetaId , isMeta } from 'markdown-react-code-preview-loader' ;
43import MarkdownPreview from '@uiw/react-markdown-preview' ;
54import styled from 'styled-components' ;
65import rehypeIgnore from 'rehype-ignore' ;
76import data from '@uiw/react-json-view/README.md' ;
87import { CodeComponent , ReactMarkdownNames } from 'react-markdown/lib/ast-to-react' ;
98
9+ const Preview = CodeLayout . Preview ;
10+ const Code = CodeLayout . Code ;
11+ const Toolbar = CodeLayout . Toolbar ;
12+
1013const MarkdownStyle = styled ( MarkdownPreview ) `
1114 margin: 0 auto;
1215 box-shadow: rgb(8 15 41 / 8%) 0.5rem 0.5rem 2rem 0px, rgb(8 15 41 / 8%) 0px 0px 1px 0px;
@@ -19,9 +22,7 @@ const MarkdownStyle = styled(MarkdownPreview)`
1922` ;
2023
2124const CodePreview : CodeComponent | ReactMarkdownNames = ( { inline, node, ...props } ) => {
22- const $dom = useRef < HTMLDivElement > ( null ) ;
2325 const { 'data-meta' : meta , ...rest } = props as any ;
24-
2526 if ( inline || ! isMeta ( meta ) ) {
2627 return < code { ...props } /> ;
2728 }
@@ -30,16 +31,15 @@ const CodePreview: CodeComponent | ReactMarkdownNames = ({ inline, node, ...prop
3031 const Child = data . components [ `${ metaId } ` ] ;
3132 if ( metaId && typeof Child === 'function' ) {
3233 const code = data . data [ metaId ] . value || '' ;
33- const param = getURLParameters ( meta ) ;
3434 return (
35- < CodeLayout
36- ref = { $dom }
37- style = { { marginBottom : 10 } }
38- toolbar = { param . title || 'Example' }
39- code = { < pre { ... rest } /> }
40- text = { code }
41- >
42- < Child / >
35+ < CodeLayout >
36+ < Preview >
37+ < Child />
38+ </ Preview >
39+ < Toolbar text = { code } > Code Example </ Toolbar >
40+ < Code >
41+ < code { ... rest } / >
42+ </ Code >
4343 </ CodeLayout >
4444 ) ;
4545 }
0 commit comments