2017-08-23 00:19:50 +05:30
|
|
|
import React from 'react';
|
2019-12-08 01:13:08 +05:30
|
|
|
import clsx from 'clsx';
|
2019-12-08 00:32:00 +05:30
|
|
|
import { Skin } from 'app/components/ui';
|
2016-08-14 14:28:14 +05:30
|
|
|
|
|
|
|
import styles from './componentLoader.scss';
|
|
|
|
|
2019-12-30 13:45:40 +05:30
|
|
|
// TODO: add mode to not show loader until first ~150ms
|
|
|
|
|
2019-12-07 16:58:52 +05:30
|
|
|
function ComponentLoader({ skin = 'dark' }: { skin?: Skin }) {
|
2019-11-27 14:33:32 +05:30
|
|
|
return (
|
|
|
|
<div
|
2019-12-08 01:13:08 +05:30
|
|
|
className={clsx(styles.componentLoader, styles[`${skin}ComponentLoader`])}
|
2019-11-27 14:33:32 +05:30
|
|
|
>
|
|
|
|
<div className={styles.spins}>
|
|
|
|
{new Array(5).fill(0).map((_, index) => (
|
|
|
|
<div
|
2019-12-08 01:13:08 +05:30
|
|
|
className={clsx(styles.spin, styles[`spin${index}`])}
|
2019-11-27 14:33:32 +05:30
|
|
|
key={index}
|
|
|
|
/>
|
|
|
|
))}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
);
|
2016-08-14 14:28:14 +05:30
|
|
|
}
|
|
|
|
|
2019-12-07 16:58:52 +05:30
|
|
|
export default ComponentLoader;
|