UNPKG

react-ions

Version:

An open source set of React components that implement Ambassador's Design and UX patterns.

41 lines (28 loc) 910 B
import classNames from 'classnames/bind' const OptClass = (context, internal, optClass, className) => { const cx = classNames.bind(context) optClass = typeof optClass === 'string' ? optClass.split(' ') : optClass internal = typeof internal === 'string' ? internal.split(' ') : internal let arr = [internal] if (optClass !== undefined) { arr.push(optClass) } if (className !== undefined) { arr.push(className) } return cx(arr) } export const mapOptClass = (optClass, styles) => { if (!optClass) return styles.default const definedStyles = Object.keys(styles) if (definedStyles.includes(optClass)) return styles[optClass] let renderedStyles = styles.default definedStyles .filter(a => optClass.includes(a)) .reverse() .map(item => { renderedStyles = { ...renderedStyles, ...styles[item] } }) return renderedStyles } export default OptClass