Files
keycloak_theme/src/lib/useGetClassName.ts

19 lines
745 B
TypeScript
Raw Normal View History

2023-03-17 20:40:29 +01:00
import { clsx } from "keycloakify/tools/clsx";
2023-03-18 06:14:05 +01:00
import { useConstCallback } from "keycloakify/tools/useConstCallback";
2023-03-17 20:40:29 +01:00
2023-03-21 05:27:31 +01:00
export function createUseClassName<ClassKey extends string>(params: { defaultClasses: Record<ClassKey, string | undefined> }) {
const { defaultClasses } = params;
2023-03-17 20:40:29 +01:00
2023-03-21 05:27:31 +01:00
function useGetClassName(params: { doUseDefaultCss: boolean; classes: Partial<Record<ClassKey, string>> | undefined }) {
const { classes, doUseDefaultCss } = params;
2023-03-17 20:40:29 +01:00
2023-03-21 05:27:31 +01:00
const getClassName = useConstCallback((classKey: ClassKey): string => {
return clsx(classKey, doUseDefaultCss ? defaultClasses[classKey] : undefined, classes?.[classKey]);
2023-03-21 05:27:31 +01:00
});
return { getClassName };
}
return { useGetClassName };
2023-03-17 20:40:29 +01:00
}