import { useMemo } from "react"; import { useConfig } from "../../_util/config-context"; import { TeaClassNames } from "../../_classnames"; type ClassNamesType = typeof TeaClassNames; function replace(current: T, prefix: string): T { if (typeof current === "object") { Object.entries(current).forEach(([key, value]) => { if (typeof value === "object") { current[key] = replace(value, prefix); } if (typeof value === "string") { current[key] = value.replace(/^tea-/, `${prefix}-`); } }); } return current; } export function useClassNames() { const { classPrefix } = useConfig(); const classNames = useMemo( () => replace(TeaClassNames, classPrefix), [classPrefix] ); return classNames; }