@@ -4,10 +4,8 @@ import { MDXProvider } from '@mdx-js/react'
44import { Helmet } from 'react-helmet'
55import CodeBlock from './codeBlock'
66import Link from './Link'
7- import Loading from '../component/Loading'
87import styles from './style/index.less'
98
10- // const { useState, useLayoutEffect, useRef } = React
119const { useState, useEffect, useRef } = React
1210
1311const components = {
@@ -19,31 +17,31 @@ function Markdown(markdownProps) {
1917 const { props } = markdownProps
2018 const { relative, name } = props
2119
22- const getInitMarkdownCP = ( ) => {
20+ const getRmFirstSlashMarkdownName = ( ) => {
2321 const relativeMd = relative
2422 if ( ! relativeMd ) return null
23+ return relative . slice ( 1 , relative . length - 3 )
24+ }
2525
26- const rmFirstSlash = relative . slice ( 1 , relative . length - 3 )
27- return ( ) => require ( `__project_root__/${ rmFirstSlash } .md` ) . default
26+ const getInitMarkdownCP = ( ) => {
27+ const markdownName = getRmFirstSlashMarkdownName ( )
28+ if ( ! markdownName ) return
29+ return ( ) => require ( `__project_root__/${ markdownName } .md` ) . default
2830 }
29- getInitMarkdownCP ( )
3031
3132 const [ MarkdownCP , setMarkdownCP ] = useState ( getInitMarkdownCP ( ) )
3233 const markdownWrapperRef = useRef ( null )
3334
3435 const renderMarkdown = ( ) => {
35- const relativeMd = relative
36- if ( ! relativeMd ) return null
37-
38- const rmFirstSlash = relative . slice ( 1 , relative . length - 3 )
36+ const markdownName = getRmFirstSlashMarkdownName ( )
37+ if ( ! markdownName ) return
3938 // it must be writen with / & .md in dynamic import
40- import ( `__project_root__/${ rmFirstSlash } .md` ) . then ( ( data ) => {
39+ import ( `__project_root__/${ markdownName } .md` ) . then ( ( data ) => {
4140 // data.default is a function, so we should write () => data.default in setState here.
4241 setMarkdownCP ( ( ) => ( data . default || data ) )
4342 } )
4443 }
4544
46- // useLayoutEffect(() => {
4745 useEffect ( ( ) => {
4846 renderMarkdown ( )
4947 } , [ ] )
@@ -60,17 +58,15 @@ function Markdown(markdownProps) {
6058 </ Helmet >
6159 {
6260 MarkdownCP
63- ? < div className = { cx ( 'markdown' , styles . markdown , styles . markdownwrapper ) } ref = { markdownWrapperRef } >
64- {
65- // MarkdownCP
66- // ?
67- < MDXProvider
68- components = { components }
69- >
70- < MarkdownCP />
71- </ MDXProvider >
72- // : <Loading />
73- }
61+ ? < div
62+ className = { cx ( 'markdown' , styles . markdown , styles . markdownwrapper ) }
63+ ref = { markdownWrapperRef }
64+ >
65+ < MDXProvider
66+ components = { components }
67+ >
68+ < MarkdownCP />
69+ </ MDXProvider >
7470 </ div >
7571 : null
7672 }
0 commit comments