[Perf] Teact: Simplify extra classes management
This commit is contained in:
parent
dfb54bfcc9
commit
590a6f5b4c
@ -152,7 +152,9 @@ function Transition({
|
||||
addExtraClass(el, CLASSES.slide);
|
||||
|
||||
if (slideClassName) {
|
||||
addExtraClass(el, slideClassName);
|
||||
slideClassName.split(/\s+/).forEach((token) => {
|
||||
addExtraClass(el, token);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -802,18 +802,7 @@ function updateStyle(element: DOMElement, value: string) {
|
||||
}
|
||||
}
|
||||
|
||||
export function addExtraClass(element: DOMElement, className: string, forceSingle = false) {
|
||||
if (!forceSingle) {
|
||||
const classNames = className.split(' ');
|
||||
if (classNames.length > 1) {
|
||||
for (const cn of classNames) {
|
||||
addExtraClass(element, cn, true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
export function addExtraClass(element: DOMElement, className: string) {
|
||||
element.classList.add(className);
|
||||
|
||||
const classList = extraClasses.get(element);
|
||||
@ -824,18 +813,7 @@ export function addExtraClass(element: DOMElement, className: string, forceSingl
|
||||
}
|
||||
}
|
||||
|
||||
export function removeExtraClass(element: DOMElement, className: string, forceSingle = false) {
|
||||
if (!forceSingle) {
|
||||
const classNames = className.split(' ');
|
||||
if (classNames.length > 1) {
|
||||
for (const cn of classNames) {
|
||||
removeExtraClass(element, cn, true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
export function removeExtraClass(element: DOMElement, className: string) {
|
||||
element.classList.remove(className);
|
||||
|
||||
const classList = extraClasses.get(element);
|
||||
@ -848,24 +826,15 @@ export function removeExtraClass(element: DOMElement, className: string, forceSi
|
||||
}
|
||||
}
|
||||
|
||||
export function toggleExtraClass(element: DOMElement, className: string, force?: boolean, forceSingle = false) {
|
||||
if (!forceSingle) {
|
||||
const classNames = className.split(' ');
|
||||
if (classNames.length > 1) {
|
||||
for (const cn of classNames) {
|
||||
toggleExtraClass(element, cn, force, true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
element.classList.toggle(className, force);
|
||||
|
||||
if (element.classList.contains(className)) {
|
||||
export function toggleExtraClass(element: DOMElement, className: string, force?: boolean) {
|
||||
if (force === true) {
|
||||
addExtraClass(element, className);
|
||||
} else {
|
||||
} else if (force === false) {
|
||||
removeExtraClass(element, className);
|
||||
} else if (extraClasses.get(element)?.has(className)) {
|
||||
removeExtraClass(element, className);
|
||||
} else {
|
||||
addExtraClass(element, className);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user