aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/ui/loader/index.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/ui/loader/index.tsx')
-rw-r--r--src/components/ui/loader/index.tsx44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/components/ui/loader/index.tsx b/src/components/ui/loader/index.tsx
new file mode 100644
index 000000000..0607bd48b
--- /dev/null
+++ b/src/components/ui/loader/index.tsx
@@ -0,0 +1,44 @@
1import classnames from 'classnames';
2import { Component } from 'react';
3import injectStyle, { withTheme } from 'react-jss';
4import ReactLoader from 'react-loader';
5
6import { IWithStyle } from '../typings/generic';
7
8interface IProps extends IWithStyle {
9 className?: string;
10 color?: string;
11}
12
13const styles = () => ({
14 container: {
15 position: 'relative',
16 height: 60,
17 },
18});
19
20class LoaderComponent extends Component<IProps> {
21 render() {
22 const { classes, className, color, theme } = this.props;
23
24 return (
25 <div
26 className={classnames({
27 [classes.container]: true,
28 [`${className}`]: className,
29 })}
30 data-type="franz-loader"
31 >
32 <ReactLoader
33 loaded={false}
34 width={4}
35 scale={0.75}
36 color={color || theme.colorText}
37 parentClassName={classes.loader}
38 />
39 </div>
40 );
41 }
42}
43
44export const Loader = injectStyle(styles)(withTheme(LoaderComponent));