1
- import { useRef } from 'react' ;
2
1
import 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' ;
4
3
import MarkdownPreview from '@uiw/react-markdown-preview' ;
5
4
import styled from 'styled-components' ;
6
5
import rehypeIgnore from 'rehype-ignore' ;
7
6
import data from '@uiw/react-json-view/README.md' ;
8
7
import { CodeComponent , ReactMarkdownNames } from 'react-markdown/lib/ast-to-react' ;
9
8
9
+ const Preview = CodeLayout . Preview ;
10
+ const Code = CodeLayout . Code ;
11
+ const Toolbar = CodeLayout . Toolbar ;
12
+
10
13
const MarkdownStyle = styled ( MarkdownPreview ) `
11
14
margin: 0 auto;
12
15
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)`
19
22
` ;
20
23
21
24
const CodePreview : CodeComponent | ReactMarkdownNames = ( { inline, node, ...props } ) => {
22
- const $dom = useRef < HTMLDivElement > ( null ) ;
23
25
const { 'data-meta' : meta , ...rest } = props as any ;
24
-
25
26
if ( inline || ! isMeta ( meta ) ) {
26
27
return < code { ...props } /> ;
27
28
}
@@ -30,16 +31,15 @@ const CodePreview: CodeComponent | ReactMarkdownNames = ({ inline, node, ...prop
30
31
const Child = data . components [ `${ metaId } ` ] ;
31
32
if ( metaId && typeof Child === 'function' ) {
32
33
const code = data . data [ metaId ] . value || '' ;
33
- const param = getURLParameters ( meta ) ;
34
34
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 >
43
43
</ CodeLayout >
44
44
) ;
45
45
}
0 commit comments