fannypack-v5
Version:
An accessible, composable, and friendly React UI Kit
54 lines (45 loc) • 1.78 kB
JavaScript
import { useMemo } from 'react';
import '../Provider/ThemeContext.js';
import classNames from 'classnames';
import 'emotion';
import '@emotion/core';
import 'emotion-theming';
import '@emotion/styled';
import { useTheme } from './useTheme.js';
import { _ as _objectSpread2 } from '../chunk-0c448560.js';
import _uniq from 'lodash/uniq';
function useClassName(_ref) {
var style = _ref.style,
prevClassName = _ref.prevClassName,
styleProps = _ref.styleProps,
themeKey = _ref.themeKey,
themeKeyOverride = _ref.themeKeyOverride,
themeKeySuffix = _ref.themeKeySuffix;
var _useTheme = useTheme(),
theme = _useTheme.theme;
var newThemeKey = "" + (themeKeyOverride || themeKey || '') + (themeKeySuffix ? "." + themeKeySuffix : '');
var className = useMemo(function () {
var className;
if (Array.isArray(style)) {
className = style.map(function (style) {
return style(_objectSpread2(_objectSpread2({
theme: theme
}, styleProps), {}, {
themeKey: newThemeKey
}));
});
} else {
className = [style(_objectSpread2(_objectSpread2({
theme: theme
}, styleProps), {}, {
themeKey: newThemeKey
}))];
}
return className;
}, [newThemeKey, style, styleProps, theme]);
var originalThemeKey = themeKeyOverride ? "" + (themeKey || '') + (themeKeySuffix ? "." + themeKeySuffix : '') : undefined;
var classNames$1 = classNames.apply(void 0, className.concat([prevClassName, newThemeKey ? "fp-" + newThemeKey.replace(/\./g, '') : undefined, originalThemeKey ? "fp-" + originalThemeKey.replace(/\./g, '') : undefined]));
var uniqueClassNames = _uniq(classNames$1.split(' ')).join(' ');
return uniqueClassNames;
}
export { useClassName };