import { ResourceWithName } from '../data-explorer/renderers';
import { GroupClass } from "models/group";
import { openProjectUpdateDialog, ProjectUpdateFormDialogData } from 'store/projects/project-update-actions';
+import { RootState } from 'store/store';
+import { ResourcesState } from 'store/resources/resources';
+import { resourceIsFrozen } from 'common/frozen-resources';
export class ProjectDetails extends DetailsData<ProjectResource> {
getIcon(className?: string) {
onClick: (prj: ProjectUpdateFormDialogData) => () => void;
}
+const mapStateToProps = (state: RootState): { resources: ResourcesState } => {
+ return {
+ resources: state.resources
+ };
+};
+
const mapDispatchToProps = (dispatch: Dispatch) => ({
onClick: (prj: ProjectUpdateFormDialogData) =>
() => dispatch<any>(openProjectUpdateDialog(prj)),
type ProjectDetailsComponentProps = ProjectDetailsComponentDataProps & ProjectDetailsComponentActionProps & WithStyles<CssRules>;
-const ProjectDetailsComponent = connect(null, mapDispatchToProps)(
+const ProjectDetailsComponent = connect(mapStateToProps, mapDispatchToProps)(
withStyles(styles)(
- ({ classes, project, onClick }: ProjectDetailsComponentProps) => <div>
+ ({ classes, project, resources, onClick }: ProjectDetailsComponentProps & { resources: ResourcesState }) => <div>
{project.groupClass !== GroupClass.FILTER ?
<Button onClick={onClick({
uuid: project.uuid,
description: project.description,
properties: project.properties,
})}
+ disabled={resourceIsFrozen(project, resources)}
className={classes.editButton} variant='contained'
data-cy='details-panel-edit-btn' color='primary' size='small'>
<RenameIcon className={classes.editIcon} /> Edit