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 }) {
|
2024-05-06 17:00:29 +02:00
|
|
|
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 => {
|
2024-05-06 17:00:29 +02:00
|
|
|
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
|
|
|
}
|