diff --git a/src/components/ui/Transition.tsx b/src/components/ui/Transition.tsx index 7fb3c47e7..82e28d7ed 100644 --- a/src/components/ui/Transition.tsx +++ b/src/components/ui/Transition.tsx @@ -152,7 +152,9 @@ function Transition({ addExtraClass(el, CLASSES.slide); if (slideClassName) { - addExtraClass(el, slideClassName); + slideClassName.split(/\s+/).forEach((token) => { + addExtraClass(el, token); + }); } }); diff --git a/src/lib/teact/teact-dom.ts b/src/lib/teact/teact-dom.ts index cf5a064a9..33e1a08e3 100644 --- a/src/lib/teact/teact-dom.ts +++ b/src/lib/teact/teact-dom.ts @@ -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); } }