28 lines
		
	
	
		
			662 B
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			662 B
		
	
	
	
		
			JavaScript
		
	
	
| import { isArray, isString, isObject } from './util';
 | |
| function classNames() {
 | |
|   let classes = [];
 | |
|   for (let i = 0; i < arguments.length; i++) {
 | |
|     const value = arguments[i];
 | |
|     if (!value) continue;
 | |
|     if (isString(value)) {
 | |
|       classes.push(value);
 | |
|     } else if (isArray(value)) {
 | |
|       for (let i = 0; i < value.length; i++) {
 | |
|         const inner = classNames(value[i]);
 | |
|         if (inner) {
 | |
|           classes.push(inner);
 | |
|         }
 | |
|       }
 | |
|     } else if (isObject(value)) {
 | |
|       for (const name in value) {
 | |
|         if (value[name]) {
 | |
|           classes.push(name);
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   return classes.join(' ');
 | |
| }
 | |
| 
 | |
| export default classNames;
 |