@@ -11,11 +11,41 @@ interface ImportStatementPropTypes {
11
11
*/
12
12
packageName : string ;
13
13
}
14
+ interface DeepPath {
15
+ path : string ;
16
+ moduleName : string ;
17
+ }
18
+ interface FromPathPropTypes extends Pick < ImportStatementPropTypes , 'packageName' > {
19
+ deepPath ?: null | undefined | DeepPath ;
20
+ }
21
+
22
+ function FromPath ( { packageName, deepPath } : FromPathPropTypes ) {
23
+ return (
24
+ < >
25
+ < span style = { { color : 'rgb(0, 0, 136)' , fontSize : '14px' } } > from</ span >
26
+ < span > </ span >
27
+ < span style = { { color : 'rgb(0, 136, 0)' , fontSize : '14px' } } >
28
+ { deepPath ? packageName . slice ( 0 , - 1 ) : packageName }
29
+ { deepPath && deepPath . path }
30
+ { deepPath && "'" }
31
+ </ span >
32
+ < span style = { { fontSize : '14px' } } > ;</ span >
33
+ { deepPath && < br /> }
34
+ </ >
35
+ ) ;
36
+ }
14
37
15
38
export const ImportStatement = ( { moduleNames, packageName } : ImportStatementPropTypes ) => {
16
39
if ( ! moduleNames ) {
17
40
return null ;
18
41
}
42
+ const isCompat = packageName . includes ( 'compat' ) ;
43
+ const paths = isCompat
44
+ ? moduleNames . map ( ( item ) => {
45
+ return { path : `/dist/components/${ item } /index.js` , moduleName : item } ;
46
+ } )
47
+ : [ null ] ;
48
+
19
49
return (
20
50
< pre
21
51
data-import
@@ -31,32 +61,46 @@ export const ImportStatement = ({ moduleNames, packageName }: ImportStatementPro
31
61
} }
32
62
>
33
63
< code style = { { whiteSpace : 'pre' } } >
34
- < span style = { { color : 'rgb(0, 0, 136)' , fontSize : '14px' } } > import</ span >
35
- < span style = { { fontSize : '14px' } } >
36
- { ' ' }
37
- { '{' }
38
- { moduleNames . length > 2 ? (
39
- < >
40
- { moduleNames . map ( ( item ) => {
41
- return (
42
- < Fragment key = { item } >
64
+ { ! paths [ 0 ] && < span style = { { color : 'rgb(0, 0, 136)' , fontSize : '14px' } } > import</ span > }
65
+ { paths . map ( ( deepPath ) => {
66
+ if ( ! deepPath ) {
67
+ return (
68
+ < span style = { { fontSize : '14px' } } >
69
+ { ' ' }
70
+ { '{' }
71
+ { moduleNames . length > 2 ? (
72
+ < >
73
+ { moduleNames . map ( ( item ) => {
74
+ return (
75
+ < Fragment key = { item } >
76
+ < br />
77
+
78
+ { item } ,
79
+ </ Fragment >
80
+ ) ;
81
+ } ) }
43
82
< br />
44
-
45
- { item } ,
46
- </ Fragment >
47
- ) ;
48
- } ) }
49
- < br />
50
- </ >
51
- ) : (
52
- < > { moduleNames . join ( ', ' ) } </ >
53
- ) }
54
- { '}' } { ' ' }
55
- </ span >
56
- < span style = { { color : 'rgb(0, 0, 136)' , fontSize : '14px' } } > from</ span >
57
- < span > </ span >
58
- < span style = { { color : 'rgb(0, 136, 0)' , fontSize : '14px' } } > { packageName } </ span >
59
- < span style = { { fontSize : '14px' } } > ;</ span >
83
+ </ >
84
+ ) : (
85
+ < > { moduleNames . join ( ', ' ) } </ >
86
+ ) }
87
+ { '}' } { ' ' }
88
+ </ span >
89
+ ) ;
90
+ } else {
91
+ return (
92
+ < >
93
+ < span style = { { color : 'rgb(0, 0, 136)' , fontSize : '14px' } } > import</ span >
94
+ < span style = { { fontSize : '14px' } } >
95
+ { ' ' }
96
+ { '{' } { deepPath . moduleName } { '}' } { ' ' }
97
+ </ span >
98
+ < FromPath packageName = { packageName } deepPath = { deepPath } />
99
+ </ >
100
+ ) ;
101
+ }
102
+ } ) }
103
+ { ! paths [ 0 ] && < FromPath packageName = { packageName } /> }
60
104
</ code >
61
105
</ pre >
62
106
) ;
0 commit comments