diff options
Diffstat (limited to 'src/components/ui/loader/index.tsx')
-rw-r--r-- | src/components/ui/loader/index.tsx | 44 |
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 @@ | |||
1 | import classnames from 'classnames'; | ||
2 | import { Component } from 'react'; | ||
3 | import injectStyle, { withTheme } from 'react-jss'; | ||
4 | import ReactLoader from 'react-loader'; | ||
5 | |||
6 | import { IWithStyle } from '../typings/generic'; | ||
7 | |||
8 | interface IProps extends IWithStyle { | ||
9 | className?: string; | ||
10 | color?: string; | ||
11 | } | ||
12 | |||
13 | const styles = () => ({ | ||
14 | container: { | ||
15 | position: 'relative', | ||
16 | height: 60, | ||
17 | }, | ||
18 | }); | ||
19 | |||
20 | class 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 | |||
44 | export const Loader = injectStyle(styles)(withTheme(LoaderComponent)); | ||