import { resourceIsFrozen } from 'common/frozen-resources';
import { ProjectResource } from 'models/project';
import { deselectAllOthers, toggleOne } from 'store/multiselect/multiselect-actions';
+import { DetailsCardRoot } from 'views-components/details-card/details-card-root';
+import { MPVContainer, MPVPanelContent, MPVPanelState } from 'components/multi-panel-view/multi-panel-view';
+import { PROJECT_PANEL_ID } from 'store/project-panel/project-panel-action-bind';
-type CssRules = 'root' | 'button' | 'loader' | 'notFoundView';
+type CssRules = 'root' | 'button' | 'mpvRoot' | 'dataExplorer';
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
root: {
width: '100%',
+ display: 'flex',
+ flexDirection: 'column',
},
button: {
marginLeft: theme.spacing.unit,
},
- loader: {
- top: "25%",
- left: "46.5%",
- marginLeft: "-84px",
- position: "absolute",
+ mpvRoot: {
+ flexGrow: 1,
},
- notFoundView: {
- top: "30%",
- left: "50%",
- marginLeft: "-84px",
- position: "absolute",
+ dataExplorer: {
+ height: "100%",
},
});
},
];
-export const PROJECT_PANEL_ID = 'projectPanel';
-
const DEFAULT_VIEW_MESSAGES = ['Your project is empty.', 'Please create a project or create a collection and upload a data.'];
+const panelsData: MPVPanelState[] = [
+ { name: "Subprojects", visible: true },
+];
+
interface ProjectPanelDataProps {
currentItemId: string;
resources: ResourcesState;
userUuid: string;
dataExplorerItems: any;
working: boolean;
- is404: boolean;
}
type ProjectPanelProps = ProjectPanelDataProps & DispatchProp & WithStyles<CssRules> & RouteComponentProps<{ id: string }>;
const mapStateToProps = (state: RootState) => {
const currentItemId = getProperty<string>(PROJECT_PANEL_CURRENT_UUID)(state.properties);
const project = getResource<GroupResource>(currentItemId || "")(state.resources);
- const working = !!state.progressIndicator.some(p => p.id === PROJECT_PANEL_ID && p.working);
- const is404 = state.dataExplorer[PROJECT_PANEL_ID].isResponse404;
return {
- working,
currentItemId,
project,
- is404,
resources: state.resources,
userUuid: state.auth.user!.uuid,
};
render() {
const { classes } = this.props;
return <div data-cy='project-panel' className={classes.root}>
- <DataExplorer
- id={PROJECT_PANEL_ID}
- onRowClick={this.handleRowClick}
- onRowDoubleClick={this.handleRowDoubleClick}
- onContextMenu={this.handleContextMenu}
- contextMenuColumn={true}
- defaultViewIcon={ProjectIcon}
- defaultViewMessages={DEFAULT_VIEW_MESSAGES}
- working={this.props.working}
- is404={this.props.is404}
- />
+ <DetailsCardRoot />
+ <MPVContainer
+ className={classes.mpvRoot}
+ spacing={8}
+ panelStates={panelsData}
+ mutuallyExclusive
+ justify-content="flex-start"
+ direction="column"
+ wrap="nowrap">
+ <MPVPanelContent
+ forwardProps
+ xs="auto"
+ data-cy="process-details"
+ className={classes.dataExplorer}>
+ <DataExplorer
+ id={PROJECT_PANEL_ID}
+ onRowClick={this.handleRowClick}
+ onRowDoubleClick={this.handleRowDoubleClick}
+ onContextMenu={this.handleContextMenu}
+ contextMenuColumn={true}
+ defaultViewIcon={ProjectIcon}
+ defaultViewMessages={DEFAULT_VIEW_MESSAGES}
+ />
+ </MPVPanelContent>
+ </MPVContainer>
</div>
}