UNPKG

@bem-react/classnames

Version:
32 lines (30 loc) 875 B
/** * Generate className string with unique tokens. * * @example * classnames('Button', 'Header-Button', undefined) // -> Button Header-Button * * @param tokens ClassNames tokens. */ function classnames() { var tokens = []; for (var _i = 0; _i < arguments.length; _i++) { tokens[_i] = arguments[_i]; } var className = ''; var uniqueCache = new Set(); var classNameList = tokens.join(' ').split(' '); for (var _a = 0, classNameList_1 = classNameList; _a < classNameList_1.length; _a++) { var value = classNameList_1[_a]; if (value === '' || uniqueCache.has(value)) { continue; } uniqueCache.add(value); if (className.length > 0) { className += ' '; } className += value; } return className; } export { classnames };