shineout
Version:
A components library for React
25 lines • 883 B
JavaScript
import classnames from 'classnames';
import { config } from '@sheinx/base';
/**
* create a new className generate function, add namespace, handle css module
* @param style - object; for css module
* @param module - string
* @param prefix - string, default value is 'shineout'
* * */
export default (function (style, module) {
var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : config.prefix;
return function () {
var className = classnames.apply(void 0, arguments);
if (!className) return '';
var ns = "".concat(prefix).concat(module ? "-".concat(module) : '-');
var list = className.split(' ').map(function (c) {
return c === '_' ? ns : "".concat(ns, "-").concat(c);
});
if (config.cssModule) {
list = list.map(function (c) {
return style[c] || c;
});
}
return list.join(' ');
};
});