FILE / Unmei/Frontend

src/classNames.ts

Исходный файл и его история в репозитории.
FILE 3dc496b7a40bc7c391f3a4b8ce025f08b9cd38ec
Files
Frontend/src/classNames.ts
T
2021-05-02 16:00:16 +03:00

32 lines
813 B
TypeScript
Executable File

export interface ObjectClassNames {
[index: string]: boolean;
}
export type ClassName = number | string | ObjectClassNames | false | null | undefined;
export default function classNames(...classNames: ClassName[]) {
let result: string[] = [];
classNames.forEach((item: ClassName): void => {
if(!item) {
return;
}
switch(typeof item) {
case 'string':
result.push(item);
break;
case 'object':
Object.keys(item).forEach((key: string) => {
if(item[key]) {
result.push(key);
}
});
break;
default:
result.push(`${item}`);
}
});
return result.join(' ');
}