Extract panel-default-view component
[arvados-workbench2.git] / src / components / panel-default-view / panel-default-view.tsx
diff --git a/src/components/panel-default-view/panel-default-view.tsx b/src/components/panel-default-view/panel-default-view.tsx
new file mode 100644 (file)
index 0000000..18be3ac
--- /dev/null
@@ -0,0 +1,31 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import * as React from 'react';
+import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
+import { DefaultViewDataProps, DefaultView } from '~/components/default-view/default-view';
+
+type CssRules = 'classRoot' | 'classIcon' | 'classMessage';
+
+const styles: StyleRulesCallback<CssRules> = () => ({
+    classRoot: {
+        position: 'absolute',
+        width: '80%',
+        left: '50%',
+        top: '50%',
+        transform: 'translate(-50%, -50%)'
+    },
+    classMessage: {
+        fontSize: '1.75rem',
+    },
+    classIcon: {
+        fontSize: '6rem'
+    }
+});
+
+type PanelDefaultViewProps = Pick<DefaultViewDataProps, 'icon' | 'messages'> & WithStyles<CssRules>;
+
+export const PanelDefaultView = withStyles(styles)(
+    ({ classes, ...props }: PanelDefaultViewProps) =>
+        <DefaultView {...classes} {...props} />);