Skip to content

Commit 3c9fcce

Browse files
authored
Merge pull request #227 from dev-five-git/class-name-issue
Fix className issue
2 parents 29b595b + 373fb4e commit 3c9fcce

File tree

4 files changed

+134
-1
lines changed

4 files changed

+134
-1
lines changed

.changeset/tall-hats-sell.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@devup-ui/wasm": patch
3+
---
4+
5+
Fix className issue (multiple selectors)

libs/extractor/src/lib.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1351,6 +1351,40 @@ import clsx from 'clsx'
13511351
)
13521352
.unwrap()
13531353
));
1354+
1355+
reset_class_map();
1356+
assert_debug_snapshot!(ToBTreeSet::from(
1357+
extract(
1358+
"test.tsx",
1359+
r"import {Center} from '@devup-ui/core'
1360+
<Center
1361+
_active={
1362+
variant !== 'disabled' && {
1363+
boxShadow: 'none',
1364+
transform: 'scale(0.95)',
1365+
}
1366+
}
1367+
_hover={
1368+
variant !== 'disabled' && {
1369+
boxShadow: [
1370+
'0px 1px 3px 0px rgba(0, 0, 0, 0.25)',
1371+
null,
1372+
'0px 0px 15px 0px rgba(0, 0, 0, 0.25)',
1373+
],
1374+
}
1375+
}
1376+
{...props}
1377+
>
1378+
{children}
1379+
</Center>
1380+
",
1381+
ExtractOption {
1382+
package: "@devup-ui/core".to_string(),
1383+
css_file: None
1384+
}
1385+
)
1386+
.unwrap()
1387+
));
13541388
}
13551389

13561390
#[test]

libs/extractor/src/prop_modify_utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ fn merge_string_expressions<'a>(
325325
}
326326
} else {
327327
let prefix = if idx == 0 { "" } else { " " };
328-
let suffix = if string_literals.len() == other_expressions.len() {
328+
let suffix = if string_literals.len() <= other_expressions.len() {
329329
" "
330330
} else {
331331
""
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
---
2+
source: libs/extractor/src/lib.rs
3+
expression: "ToBTreeSet::from(extract(\"test.tsx\",\nr\"import {Center} from '@devup-ui/core'\n <Center\n _active={\n variant !== 'disabled' && {\n boxShadow: 'none',\n transform: 'scale(0.95)',\n }\n }\n _hover={\n variant !== 'disabled' && {\n boxShadow: [\n '0px 1px 3px 0px rgba(0, 0, 0, 0.25)',\n null,\n '0px 0px 15px 0px rgba(0, 0, 0, 0.25)',\n ],\n }\n }\n {...props}\n >\n {children}\n </Center>\n \",\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap())"
4+
---
5+
ToBTreeSet {
6+
styles: {
7+
Static(
8+
ExtractStaticStyle {
9+
property: "alignItems",
10+
value: "center",
11+
level: 0,
12+
selector: None,
13+
style_order: Some(
14+
0,
15+
),
16+
},
17+
),
18+
Static(
19+
ExtractStaticStyle {
20+
property: "boxShadow",
21+
value: "0 0 15px 0 rgba(0,0,0,0.25)",
22+
level: 2,
23+
selector: Some(
24+
Selector(
25+
"&:hover",
26+
),
27+
),
28+
style_order: None,
29+
},
30+
),
31+
Static(
32+
ExtractStaticStyle {
33+
property: "boxShadow",
34+
value: "0 1px 3px 0 rgba(0,0,0,0.25)",
35+
level: 0,
36+
selector: Some(
37+
Selector(
38+
"&:hover",
39+
),
40+
),
41+
style_order: None,
42+
},
43+
),
44+
Static(
45+
ExtractStaticStyle {
46+
property: "boxShadow",
47+
value: "none",
48+
level: 0,
49+
selector: Some(
50+
Selector(
51+
"&:active",
52+
),
53+
),
54+
style_order: None,
55+
},
56+
),
57+
Static(
58+
ExtractStaticStyle {
59+
property: "display",
60+
value: "flex",
61+
level: 0,
62+
selector: None,
63+
style_order: Some(
64+
0,
65+
),
66+
},
67+
),
68+
Static(
69+
ExtractStaticStyle {
70+
property: "justifyContent",
71+
value: "center",
72+
level: 0,
73+
selector: None,
74+
style_order: Some(
75+
0,
76+
),
77+
},
78+
),
79+
Static(
80+
ExtractStaticStyle {
81+
property: "transform",
82+
value: "scale(0.95)",
83+
level: 0,
84+
selector: Some(
85+
Selector(
86+
"&:active",
87+
),
88+
),
89+
style_order: None,
90+
},
91+
),
92+
},
93+
code: "import \"@devup-ui/core/devup-ui.css\";\n<div {...props} className={`d0 d1 d2 ${variant !== \"disabled\" ? \"d3 d4\" : \"\"} ${variant !== \"disabled\" ? \"d5 d6\" : \"\"}`} style={props?.style}>\n {children}\n </div>;\n",
94+
}

0 commit comments

Comments
 (0)