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