import { ServiceRepository } from '~/services/services';
import { matchProjectRoute, matchRunProcessRoute } from '~/routes/routes';
import { ResourcePropertiesFormData } from '~/views-components/resource-properties-form/resource-properties-form';
+import { GraphChange } from '../../lib/cwl-svg/plugins/plugin';
export interface ProjectCreateFormDialogData {
ownerUuid: string;
export const addPropertyToCreateProjectForm = (data: ResourcePropertiesFormData) =>
(dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- console.log('addPropertyToCreateProjectForm: ', data);
- dispatch(change(PROJECT_CREATE_FORM_NAME, 'properties', data));
- // dispatch(arrayPush(PROJECT_CREATE_FORM_NAME, 'properties', data));
+ const selector = formValueSelector(PROJECT_CREATE_FORM_NAME);
+ const properties = selector(getState(), 'properties') || {};
+ properties[data.key] = data.value;
+ dispatch(change(PROJECT_CREATE_FORM_NAME, 'properties', {...properties } ));
};
export const removePropertyFromCreateProjectForm = (key: string) =>
(dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- console.log('removePropertyFromCreateProjectForm: ', key);
+ const selector = formValueSelector(PROJECT_CREATE_FORM_NAME);
+ const properties = selector(getState(), 'properties');
+ delete properties[key];
+ dispatch(change(PROJECT_CREATE_FORM_NAME, 'properties', { ...properties } ));
};
\ No newline at end of file
type CreateProjectPropertiesListProps = CreateProjectPropertiesListDataProps &
CreateProjectPropertiesListActionProps & WithStyles<CssRules>;
-export const CreateProjectPropertiesList = connect(mapStateToProps, mapDispatchToProps)(
- withStyles(styles)(
- ({ classes, handleDelete, properties }: CreateProjectPropertiesListProps) =>
- <div>
- { properties &&
- Object.keys(properties).map(k => {
- return <Chip key={k} className={classes.tag}
- onDelete={() => handleDelete(k)}
- label={`${k}: ${properties[k]}`} />;
+const List = withStyles(styles)(
+ ({ classes, handleDelete, properties }: CreateProjectPropertiesListProps) =>
+ <div>
+ {properties &&
+ Object.keys(properties).map(k => {
+ return <Chip key={k} className={classes.tag}
+ onDelete={() => handleDelete(k)}
+ label={`${k}: ${properties[k]}`} />;
})}
- </div>
- ));
\ No newline at end of file
+ </div>
+);
+
+export const CreateProjectPropertiesList = connect(mapStateToProps, mapDispatchToProps)(List);
\ No newline at end of file