keycloak_theme/src/tools/useSetClassName.ts

22 lines
584 B
TypeScript
Raw Normal View History

import { useEffect } from "react";
export function useSetClassName(params: { qualifiedName: "html" | "body"; className: string | undefined }) {
const { qualifiedName, className } = params;
useEffect(() => {
if (className === undefined || className === "") {
return;
}
const htmlClassList = document.getElementsByTagName(qualifiedName)[0].classList;
const tokens = className.split(" ");
htmlClassList.add(...tokens);
return () => {
htmlClassList.remove(...tokens);
};
}, [className]);
}