diff --git a/.changeset/neat-emus-visit.md b/.changeset/neat-emus-visit.md new file mode 100644 index 00000000..6197803d --- /dev/null +++ b/.changeset/neat-emus-visit.md @@ -0,0 +1,5 @@ +--- +"@devup-ui/wasm": patch +--- + +Fix walk issue, add flex props diff --git a/libs/extractor/src/extract_style/mod.rs b/libs/extractor/src/extract_style/mod.rs index 42fd457f..4d92d91f 100644 --- a/libs/extractor/src/extract_style/mod.rs +++ b/libs/extractor/src/extract_style/mod.rs @@ -21,6 +21,7 @@ pub struct ExtractStaticStyle { static MAINTAIN_VALUE_PROPERTIES: Lazy> = Lazy::new(|| { let mut set = HashSet::::new(); set.insert("opacity".to_string()); + set.insert("flex".to_string()); set.insert("zIndex".to_string()); set.insert("fontWeight".to_string()); set.insert("scale".to_string()); diff --git a/libs/extractor/src/lib.rs b/libs/extractor/src/lib.rs index 35181f88..3f27ef3c 100644 --- a/libs/extractor/src/lib.rs +++ b/libs/extractor/src/lib.rs @@ -956,7 +956,7 @@ export { assert_debug_snapshot!(extract( "test.js", r#"import {Flex} from '@devup-ui/core' - + "#, ExtractOption { package: "@devup-ui/core".to_string(), @@ -1116,4 +1116,26 @@ export { ) .unwrap()); } + + #[test] + #[serial] + fn test_component_in_func() { + reset_class_map(); + assert_debug_snapshot!(extract( + "test.js", + r#"import {Flex} from '@devup-ui/core' +PROCESS_DATA.map(({ id, title, content }, idx) => ( + + + + + )) + "#, + ExtractOption { + package: "@devup-ui/core".to_string(), + css_file: None + } + ) + .unwrap()); + } } diff --git a/libs/extractor/src/snapshots/extractor__tests__component_in_func.snap b/libs/extractor/src/snapshots/extractor__tests__component_in_func.snap new file mode 100644 index 00000000..ffa4faee --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__component_in_func.snap @@ -0,0 +1,54 @@ +--- +source: libs/extractor/src/lib.rs +expression: "extract(\"test.js\",\nr#\"import {Flex} from '@devup-ui/core'\nPROCESS_DATA.map(({ id, title, content }, idx) => (\n \n \n \n \n ))\n \"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap()" +--- +ExtractOutput { + styles: [ + Static( + ExtractStaticStyle { + property: "display", + value: "flex", + level: 0, + selector: None, + basic: true, + }, + ), + Static( + ExtractStaticStyle { + property: "alignItems", + value: "center", + level: 0, + selector: None, + basic: false, + }, + ), + Static( + ExtractStaticStyle { + property: "gap", + value: "12px", + level: 0, + selector: None, + basic: false, + }, + ), + Static( + ExtractStaticStyle { + property: "gap", + value: "20px", + level: 2, + selector: None, + basic: false, + }, + ), + Static( + ExtractStaticStyle { + property: "gap", + value: "40px", + level: 4, + selector: None, + basic: false, + }, + ), + ], + code: "import \"@devup-ui/core/devup-ui.css\";\nPROCESS_DATA.map(({ id, title, content }, idx) => \n
\n
\n
);\n", +} diff --git a/libs/extractor/src/snapshots/extractor__tests__maintain_value.snap b/libs/extractor/src/snapshots/extractor__tests__maintain_value.snap index ab6f3493..ec11336b 100644 --- a/libs/extractor/src/snapshots/extractor__tests__maintain_value.snap +++ b/libs/extractor/src/snapshots/extractor__tests__maintain_value.snap @@ -1,6 +1,6 @@ --- source: libs/extractor/src/lib.rs -expression: "extract(\"test.js\",\nr#\"import {Flex} from '@devup-ui/core'\n \n \"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap()" +expression: "extract(\"test.js\",\nr#\"import {Flex} from '@devup-ui/core'\n \n \"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap()" --- ExtractOutput { styles: [ @@ -49,6 +49,15 @@ ExtractOutput { basic: false, }, ), + Static( + ExtractStaticStyle { + property: "flex", + value: "1", + level: 0, + selector: None, + basic: false, + }, + ), ], - code: "import \"@devup-ui/core/devup-ui.css\";\n
;\n", + code: "import \"@devup-ui/core/devup-ui.css\";\n
;\n", } diff --git a/libs/extractor/src/visit.rs b/libs/extractor/src/visit.rs index 7684d048..69b280f3 100644 --- a/libs/extractor/src/visit.rs +++ b/libs/extractor/src/visit.rs @@ -171,9 +171,8 @@ impl<'a> VisitMut<'a> for DevupVisitor<'a> { } } } - - walk_call_expression(self, it); } + walk_call_expression(self, it); } fn visit_tagged_template_expression(&mut self, it: &mut TaggedTemplateExpression<'a>) { if let Expression::Identifier(ident) = &it.tag {