@@ -28,29 +28,41 @@ export default function transformer(file, api, options) {
28
28
const root = j ( file . source ) ;
29
29
const printOptions = options . printOptions ;
30
30
31
- const transformed = root . findJSXElements ( ) . forEach ( ( path ) => {
32
- if ( path . node . type !== 'JSXElement' ) {
33
- return ;
34
- }
31
+ root
32
+ . find ( j . ImportDeclaration )
33
+ . filter ( ( { node } ) => {
34
+ return node . source . value . startsWith ( '@mui/joy' ) ;
35
+ } )
36
+ . forEach ( ( path ) => {
37
+ path . node . specifiers . forEach ( ( node ) => {
38
+ // Process only Joy UI components
39
+ root . findJSXElements ( node . local . name ) . forEach ( ( elementPath ) => {
40
+ if ( elementPath . node . type !== 'JSXElement' ) {
41
+ return ;
42
+ }
35
43
36
- path . node . openingElement . attributes . forEach ( ( node ) => {
37
- if ( node . type !== 'JSXAttribute' ) {
38
- return ;
39
- }
44
+ elementPath . node . openingElement . attributes . forEach ( ( elementNode ) => {
45
+ if ( elementNode . type !== 'JSXAttribute' ) {
46
+ return ;
47
+ }
40
48
41
- switch ( node . name . name ) {
42
- case 'components' :
43
- transformComponentsProp ( node ) ;
44
- break ;
49
+ switch ( elementNode . name . name ) {
50
+ case 'components' :
51
+ transformComponentsProp ( elementNode ) ;
52
+ break ;
45
53
46
- case 'componentsProps' :
47
- transformComponentsPropsProp ( node ) ;
48
- break ;
54
+ case 'componentsProps' :
55
+ transformComponentsPropsProp ( elementNode ) ;
56
+ break ;
49
57
50
- default :
51
- }
58
+ default :
59
+ }
60
+ } ) ;
61
+ } ) ;
62
+ } ) ;
52
63
} ) ;
53
- } ) ;
64
+
65
+ const transformed = root . findJSXElements ( ) ;
54
66
55
67
return transformed . toSource ( printOptions ) ;
56
68
}
0 commit comments