Setup routing for process panel
[arvados-workbench2.git] / src / views / process-panel / process-panel-root.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import * as React from 'react';
6 import { Grid } from '@material-ui/core';
7 import { ProcessInformationCard } from './process-information-card';
8 import { DefaultView } from '~/components/default-view/default-view';
9 import { ProcessIcon } from '~/components/icon/icon';
10 import { Process } from '~/store/processes/process';
11
12 export interface ProcessPanelRootDataProps {
13     process?: Process;
14 }
15
16 export interface ProcessPanelRootActionProps {
17     onContextMenu: (event: React.MouseEvent<HTMLElement>) => void;
18 }
19
20 export type ProcessPanelRootProps = ProcessPanelRootDataProps & ProcessPanelRootActionProps;
21
22 export const ProcessPanelRoot = (props: ProcessPanelRootProps) =>
23     props.process
24         ? <Grid container>
25             <Grid item xs={7}>
26                 <ProcessInformationCard
27                     process={props.process}
28                     onContextMenu={props.onContextMenu} />
29             </Grid>
30         </Grid>
31         : <Grid container
32             alignItems='center'
33             justify='center'>
34             <DefaultView
35                 icon={ProcessIcon}
36                 messages={['Process not found']} />
37         </Grid>;