UNPKG

react-table-pro

Version:
36 lines (27 loc) 1.04 kB
// @flow type ClassNamesArgumentValueType = string | void | null; type ClassNamesArgumentType = ClassNamesArgumentValueType | {+[key: string]: ClassNamesArgumentValueType | boolean}; // eslint-disable-next-line complexity export function classNames(...argumentList: Array<ClassNamesArgumentType>): string { const classNameList: Array<string> = []; // eslint-disable-next-line no-loops/no-loops for (const classNameData of argumentList) { if (!classNameData) { // eslint-disable-next-line no-continue continue; } if (typeof classNameData === 'string') { classNameList.push(classNameData); // eslint-disable-next-line no-continue continue; } const keyList = Object.keys(classNameData); // eslint-disable-next-line no-loops/no-loops for (const key of keyList) { if (classNameData[key]) { classNameList.push(key); } } } return classNameList.join(' '); }