import { ArvadosTheme } from 'src/common/custom-theme';
import { IconType } from '../icon/icon';
-export interface EmptyStateDataProps {
- message: string;
- icon: IconType;
- details?: string;
-}
-
-type EmptyStateProps = EmptyStateDataProps & WithStyles<CssRules>;
-
-class EmptyState extends React.Component<EmptyStateProps, {}> {
-
- render() {
- const { classes, message, details, icon: Icon, children } = this.props;
- return (
- <Typography className={classes.container} component="div">
- <Icon className={classes.icon} />
- <Typography variant="body1" gutterBottom>{message}</Typography>
- { details && <Typography gutterBottom>{details}</Typography> }
- { children && <Typography gutterBottom>{children}</Typography> }
- </Typography>
- );
- }
-
-}
-
type CssRules = 'container' | 'icon';
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
container: {
}
});
-export default withStyles(styles)(EmptyState);
\ No newline at end of file
+export interface EmptyStateDataProps {
+ message: string;
+ icon: IconType;
+ details?: string;
+}
+
+type EmptyStateProps = EmptyStateDataProps & WithStyles<CssRules>;
+
+export const EmptyState = withStyles(styles)(
+ class extends React.Component<EmptyStateProps, {}> {
+ render() {
+ const {classes, message, details, icon: Icon, children} = this.props;
+ return (
+ <Typography className={classes.container} component="div">
+ <Icon className={classes.icon}/>
+ <Typography variant="body1" gutterBottom>{message}</Typography>
+ {details && <Typography gutterBottom>{details}</Typography>}
+ {children && <Typography gutterBottom>{children}</Typography>}
+ </Typography>
+ );
+ }
+ }
+);