Skip to content

Commit efe0829

Browse files
committed
Better class removing
1 parent 0027ecf commit efe0829

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ulyssear/css-in-js-in-html",
3-
"version": "0.1.1",
3+
"version": "0.1.2",
44
"description": "",
55
"main": "index.js",
66
"scripts": {

src/index.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,16 +258,17 @@ function apply_custom_class(element, className) {
258258
value: class_value.substring(1, class_value.length - 1),
259259
});
260260
}
261-
element.className = element.className.replace(className, '').trim();
261+
const original_class = className;
262+
// element.className = element.className.replace(className, '').trim();
262263
// console.log({classes_to_apply})
263264

264265
// console.log({ selectors, classes_to_apply, events, media_query });
265266

266-
do_apply(element, selectors, classes_to_apply, events, media_query);
267+
do_apply(element, selectors, classes_to_apply, events, media_query, original_class);
267268
}
268269
}
269270

270-
function do_apply(element, selectors, classes, events, media_query) {
271+
function do_apply(element, selectors, classes, events, media_query, original_class) {
271272
if (media_query) {
272273
if ('(' !== media_query[0]) {
273274
media_query = `(${media_query})`;
@@ -353,14 +354,25 @@ function do_apply(element, selectors, classes, events, media_query) {
353354
return;
354355
}
355356

357+
let to_remove_class = false;
358+
356359
for (let j = 0; j < elements_to_apply.length; j++) {
357360
const element_to_apply = elements_to_apply[j];
358361
if (!element_to_apply) continue;
359362
for (let k = 0; k < classes.length; k++) {
360363
const { name, value } = classes[k];
364+
if (!name) continue;
361365
element_to_apply.style.setProperty(name, value);
366+
if (to_remove_class) continue;
367+
if (element.className.includes(original_class)) {
368+
to_remove_class = true;
369+
}
362370
}
363371
}
372+
373+
if (to_remove_class) {
374+
element.className = element.className.replace(original_class, '');
375+
}
364376
}
365377

366378
function init(document, event = undefined) {

0 commit comments

Comments
 (0)