-export type ProcessPanelRootProps = ProcessPanelRootDataProps & ProcessPanelRootActionProps;
-
-export const ProcessPanelRoot = (props: ProcessPanelRootProps) =>
- props.process
- ? <Grid container spacing={16} alignItems="stretch">
- <Grid item sm={12} md={7}>
- <ProcessInformationCard
- process={props.process}
- onContextMenu={props.onContextMenu} />
- </Grid>
- <Grid item sm={12} md={5}>
- <SubprocessesCard
- subprocessesAmount={props.totalSubprocessesLength}
- filters={props.filters}
- onToggle={props.onToggle}
+export type ProcessPanelRootProps = ProcessPanelRootDataProps & ProcessPanelRootActionProps & WithStyles<CssRules>;
+
+const panelsData: MPVPanelState[] = [
+ {name: "Details"},
+ {name: "Command"},
+ {name: "Logs", visible: true},
+ {name: "Subprocesses"},
+];
+
+export const ProcessPanelRoot = withStyles(styles)(
+ ({ process, processLogsPanel, ...props }: ProcessPanelRootProps) =>
+ process
+ ? <MPVContainer className={props.classes.root} spacing={8} panelStates={panelsData} justify-content="flex-start" direction="column" wrap="nowrap">
+ <MPVPanelContent forwardProps xs="auto" data-cy="process-details">
+ <ProcessDetailsCard
+ process={process}
+ onContextMenu={event => props.onContextMenu(event, process)}
+ cancelProcess={props.cancelProcess}
+ />
+ </MPVPanelContent>
+ <MPVPanelContent forwardProps xs="auto" data-cy="process-cmd">
+ <ProcessCmdCard
+ onCopy={props.onCopyToClipboard}
+ process={process} />
+ </MPVPanelContent>
+ <MPVPanelContent forwardProps xs maxHeight='50%' data-cy="process-logs">
+ <ProcessLogsCard
+ onCopy={props.onCopyToClipboard}
+ process={process}
+ lines={getProcessPanelLogs(processLogsPanel)}
+ selectedFilter={{
+ label: processLogsPanel.selectedFilter,
+ value: processLogsPanel.selectedFilter
+ }}
+ filters={processLogsPanel.filters.map(
+ filter => ({ label: filter, value: filter })
+ )}
+ onLogFilterChange={props.onLogFilterChange}
+ navigateToLog={props.navigateToLog}