import { CollectionResource } from 'models/collection';
import { resourceIsFrozen } from 'common/frozen-resources';
import { ProjectResource } from 'models/project';
-import { NotFoundView } from 'views/not-found-panel/not-found-panel';
import { deselectAllOthers, toggleOne } from 'store/multiselect/multiselect-actions';
-type CssRules = 'root' | 'button';
+type CssRules = 'root' | 'button' | 'loader' | 'notFoundView';
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
root: {
button: {
marginLeft: theme.spacing.unit,
},
+ loader: {
+ top: "25%",
+ left: "46.5%",
+ marginLeft: "-84px",
+ position: "absolute",
+ },
+ notFoundView: {
+ top: "30%",
+ left: "50%",
+ marginLeft: "-84px",
+ position: "absolute",
+ },
});
export enum ProjectPanelColumnNames {
isAdmin: boolean;
userUuid: string;
dataExplorerItems: any;
+ working: boolean;
+ isNotFound: 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 isNotFound = state.dataExplorer[PROJECT_PANEL_ID] ? state.dataExplorer[PROJECT_PANEL_ID].isNotFound : false;
return {
currentItemId,
project,
+ isNotFound,
resources: state.resources,
userUuid: state.auth.user!.uuid,
};
export const ProjectPanel = withStyles(styles)(
connect(mapStateToProps)(
class extends React.Component<ProjectPanelProps> {
+
render() {
const { classes } = this.props;
-
- return this.props.project ?
- <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}
- />
- </div>
- :
- <NotFoundView
- icon={ProjectIcon}
- messages={["Project not found"]}
+ 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}
+ isNotFound={this.props.isNotFound}
/>
+ </div>
}
isCurrentItemChild = (resource: Resource) => {