30 lines
674 B
TypeScript
Raw Normal View History

import React, { ComponentType } from 'react';
2019-12-07 21:43:08 +02:00
import clsx from 'clsx';
import { Skin } from 'app/components/ui';
2016-08-14 11:58:14 +03:00
import styles from './componentLoader.scss';
2019-12-30 10:15:40 +02:00
// TODO: add mode to not show loader until first ~150ms
interface Props {
skin?: Skin;
2016-08-14 11:58:14 +03:00
}
const ComponentLoader: ComponentType<Props> = ({ skin = 'dark' }) => (
<div
className={clsx(styles.componentLoader, styles[`${skin}ComponentLoader`])}
>
<div className={styles.spins}>
{new Array(5).fill(0).map((_, index) => (
<div
className={clsx(styles.spin, styles[`spin${index}`])}
key={index}
/>
))}
</div>
</div>
);
2019-12-07 13:28:52 +02:00
export default ComponentLoader;