Skip to content

Commit f947f33

Browse files
committed
Fix gen selector logic
1 parent 796c64d commit f947f33

File tree

41 files changed

+94
-48
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+94
-48
lines changed

.changeset/swift-pandas-bathe.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 gen classname logic with selector

libs/css/src/lib.rs

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,29 @@ pub fn convert_property(property: &str) -> PropertyType {
9393
.unwrap_or_else(|| to_kebab_case(property).into())
9494
}
9595

96-
pub fn sheet_to_classname(property: &str, level: u8, value: Option<&str>) -> String {
96+
pub fn sheet_to_classname(
97+
property: &str,
98+
level: u8,
99+
value: Option<&str>,
100+
selector: Option<&str>,
101+
) -> String {
97102
let mut hasher = DefaultHasher::new();
98-
hasher.write(format!("{}-{}-{}", property, level, value.unwrap_or("")).as_bytes());
103+
hasher.write(
104+
format!(
105+
"{}-{}-{}-{}",
106+
property,
107+
level,
108+
value.unwrap_or(""),
109+
selector.unwrap_or("")
110+
)
111+
.as_bytes(),
112+
);
99113
format!("d{}", hasher.finish())
100114
}
101115

102-
pub fn sheet_to_variable_name(property: &str, level: u8) -> String {
116+
pub fn sheet_to_variable_name(property: &str, level: u8, selector: Option<&str>) -> String {
103117
let mut hasher = DefaultHasher::new();
104-
hasher.write(format!("{}-{}", property, level).as_bytes());
118+
hasher.write(format!("{}-{}-{}", property, level, selector.unwrap_or("")).as_bytes());
105119
format!("--d{}", hasher.finish())
106120
}
107121

@@ -112,21 +126,26 @@ mod tests {
112126
#[test]
113127
fn test_sheet_to_variable_name() {
114128
let mut hasher = DefaultHasher::new();
115-
hasher.write(format!("{}-{}", "color", 0).as_bytes());
129+
hasher.write(format!("{}-{}-{}", "color", 0, "").as_bytes());
116130
assert_eq!(
117-
sheet_to_variable_name("color", 0),
131+
sheet_to_variable_name("color", 0, None),
118132
format!("--d{}", hasher.finish())
119133
);
120134
}
121135

122136
#[test]
123137
fn test_sheet_to_classname() {
124138
let mut hasher = DefaultHasher::new();
125-
hasher.write(format!("{}-{}-{}", "color", 0, "red").as_bytes());
139+
hasher.write(format!("{}-{}-{}-{}", "color", 0, "red", "").as_bytes());
126140
assert_eq!(
127-
sheet_to_classname("color", 0, Some("red")),
141+
sheet_to_classname("color", 0, Some("red"), None),
128142
format!("d{}", hasher.finish())
129143
);
144+
145+
assert_ne!(
146+
sheet_to_classname("color", 0, Some("red"), None),
147+
sheet_to_classname("color", 0, Some("red"), Some(":hover")),
148+
);
130149
}
131150

132151
#[test]

libs/extractor/src/lib.rs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,11 @@ impl ExtractStyleProperty for ExtractStaticStyle {
9191
self.property.as_str(),
9292
self.level,
9393
Some(convert_value(self.value.as_str()).as_str()),
94+
if let Some(selector) = &self.selector {
95+
Some(selector.as_str())
96+
} else {
97+
None
98+
},
9499
))
95100
}
96101
}
@@ -125,8 +130,25 @@ pub struct ExtractDynamicStyle {
125130
impl ExtractStyleProperty for ExtractDynamicStyle {
126131
fn extract(&self) -> StyleProperty {
127132
StyleProperty::Variable {
128-
class_name: sheet_to_classname(self.property.as_str(), self.level, None),
129-
variable_name: sheet_to_variable_name(self.property.as_str(), self.level),
133+
class_name: sheet_to_classname(
134+
self.property.as_str(),
135+
self.level,
136+
None,
137+
if let Some(selector) = &self.selector {
138+
Some(selector.as_str())
139+
} else {
140+
None
141+
},
142+
),
143+
variable_name: sheet_to_variable_name(
144+
self.property.as_str(),
145+
self.level,
146+
if let Some(selector) = &self.selector {
147+
Some(selector.as_str())
148+
} else {
149+
None
150+
},
151+
),
130152
identifier: self.identifier.clone(),
131153
}
132154
}

libs/extractor/src/snapshots/extractor__tests__extract_class_name_from_component.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,5 @@ ExtractOutput {
3737
},
3838
),
3939
],
40-
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { VStack as C } from \"@devup-ui/core\";\n<div className={`d1317701749553269676 d6446653468614263203 d13564892828075531325 d7164797882338261018 ${\"a\" + \"b\"}`} />;\n",
40+
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { VStack as C } from \"@devup-ui/core\";\n<div className={`d6722557538442813266 d3848450220363244900 d14330397360050164060 d5274499629582391758 ${\"a\" + \"b\"}`} />;\n",
4141
}

libs/extractor/src/snapshots/extractor__tests__extract_compound_responsive_style_props.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,5 @@ ExtractOutput {
3737
},
3838
),
3939
],
40-
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className=\"d169756389412877303 d14370488508125317966 d13045603108234987884 d16442223933220481321\" style={{\n\t\"--d13910714689067654253\": someStyleVar1,\n\t\"--d15617356007119957826\": someStyleVar,\n\t\"--d12438662493683969042\": someStyleVar2\n}} />;\n",
40+
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className=\"d950431837697362493 d3948398971488474326 d5985969837765369532 d15316134123632971425\" style={{\n\t\"--d14370488508125317966\": someStyleVar1,\n\t\"--d169756389412877303\": someStyleVar,\n\t\"--d13045603108234987884\": someStyleVar2\n}} />;\n",
4141
}

libs/extractor/src/snapshots/extractor__tests__extract_conditional_style_props-2.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ ExtractOutput {
2121
},
2222
),
2323
],
24-
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className=\"d13763791968754421226\" style={{ \"--d15632935115870867517\": a === b ? c : d }} />;\n",
24+
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className=\"d1419212369670126212\" style={{ \"--d13763791968754421226\": a === b ? c : d }} />;\n",
2525
}

libs/extractor/src/snapshots/extractor__tests__extract_conditional_style_props-3.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ ExtractOutput {
2121
},
2222
),
2323
],
24-
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className={a === b ? \"d6186180367078841290\" : \"d13763791968754421226\"} style={{ \"--d15632935115870867517\": d }} />;\n",
24+
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className={a === b ? \"d14718123859853665643\" : \"d1419212369670126212\"} style={{ \"--d13763791968754421226\": d }} />;\n",
2525
}

libs/extractor/src/snapshots/extractor__tests__extract_conditional_style_props.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ ExtractOutput {
2121
},
2222
),
2323
],
24-
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className={a === b ? \"d6186180367078841290\" : \"d1044305882111332400\"} />;\n",
24+
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className={a === b ? \"d14718123859853665643\" : \"d15680784530335274378\"} />;\n",
2525
}

libs/extractor/src/snapshots/extractor__tests__extract_dynamic_responsive_style_props.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@ ExtractOutput {
2929
},
3030
),
3131
],
32-
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className=\"d169756389412877303 d14370488508125317966 d13045603108234987884\" style={{\n\t\"--d13910714689067654253\": someStyleVar1,\n\t\"--d15617356007119957826\": someStyleVar,\n\t\"--d12438662493683969042\": someStyleVar2\n}} />;\n",
32+
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className=\"d950431837697362493 d3948398971488474326 d5985969837765369532\" style={{\n\t\"--d14370488508125317966\": someStyleVar1,\n\t\"--d169756389412877303\": someStyleVar,\n\t\"--d13045603108234987884\": someStyleVar2\n}} />;\n",
3333
}

libs/extractor/src/snapshots/extractor__tests__extract_dynamic_style_props.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ ExtractOutput {
2121
},
2222
),
2323
],
24-
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className=\"d169756389412877303 d13763791968754421226\" style={{\n\t\"--d15617356007119957826\": someStyleVar,\n\t\"--d15632935115870867517\": someStyleVar2\n}} />;\n",
24+
code: "import \"@devup-ui/core/devup-ui.css\";\nimport { Box } from \"@devup-ui/core\";\n<div className=\"d950431837697362493 d1419212369670126212\" style={{\n\t\"--d169756389412877303\": someStyleVar,\n\t\"--d13763791968754421226\": someStyleVar2\n}} />;\n",
2525
}

0 commit comments

Comments
 (0)