change code after CR
authorJanicki Artur <artur.janicki@contractors.roche.com>
Fri, 21 Dec 2018 10:05:08 +0000 (11:05 +0100)
committerJanicki Artur <artur.janicki@contractors.roche.com>
Fri, 21 Dec 2018 10:05:08 +0000 (11:05 +0100)
Feature #14248_assigning_properties_to_projects_during_create

Arvados-DCO-1.1-Signed-off-by: Janicki Artur <artur.janicki@contractors.roche.com>

src/store/projects/project-create-actions.ts
src/views-components/project-properties/create-project-properties-list.tsx

index f4883eb92d6d57ca6a79774a18cd4bd7c4887487..613e828d722e0b531625c0d3064442bc0b470eb3 100644 (file)
@@ -16,11 +16,12 @@ export interface ProjectCreateFormDialogData {
     ownerUuid: string;
     name: string;
     description: string;
-    properties: any;
+    properties: { [key: string]: string };
 }
 
 export const PROJECT_CREATE_FORM_NAME = 'projectCreateFormName';
 export const PROJECT_CREATE_PROPERTIES_FORM_NAME = 'projectCreatePropertiesFormName';
+export const CREATE_FORM_SELECTOR = formValueSelector(PROJECT_CREATE_FORM_NAME);
 
 export const isProjectOrRunProcessRoute = ({ router }: RootState) => {
     const pathname = router.location ? router.location.pathname : '';
@@ -69,16 +70,14 @@ export const createProject = (project: Partial<ProjectResource>) =>
 
 export const addPropertyToCreateProjectForm = (data: ResourcePropertiesFormData) =>
     (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
-        const selector = formValueSelector(PROJECT_CREATE_FORM_NAME);
-        const properties = selector(getState(), 'properties') || {};
+        const properties = CREATE_FORM_SELECTOR(getState(), 'properties') || {};
         properties[data.key] = data.value;
-        dispatch(change(PROJECT_CREATE_FORM_NAME, 'properties', {...properties } ));
+        dispatch(change(PROJECT_CREATE_FORM_NAME, 'properties', { ...properties } ));
     };
 
 export const removePropertyFromCreateProjectForm = (key: string) =>
     (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
-        const selector = formValueSelector(PROJECT_CREATE_FORM_NAME);
-        const properties = selector(getState(), 'properties');
+        const properties = CREATE_FORM_SELECTOR(getState(), 'properties');
         delete properties[key];
         dispatch(change(PROJECT_CREATE_FORM_NAME, 'properties', { ...properties } ));
     };
\ No newline at end of file
index 1e98905cf20c0c9643ac0897969c3dbe7fbd3771..41003adcafe0d7f96ca1616199bca4f5ab03d8c3 100644 (file)
@@ -8,7 +8,7 @@ import { Dispatch } from 'redux';
 import { formValueSelector } from 'redux-form';
 import { withStyles, StyleRulesCallback, WithStyles, Chip } from '@material-ui/core';
 import { RootState } from '~/store/store';
-import { removePropertyFromCreateProjectForm, PROJECT_CREATE_FORM_NAME } from '~/store/projects/project-create-actions';
+import { removePropertyFromCreateProjectForm, CREATE_FORM_SELECTOR } from '~/store/projects/project-create-actions';
 import { ArvadosTheme } from '~/common/custom-theme';
 
 type CssRules = 'tag';
@@ -21,16 +21,15 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
 });
 
 interface CreateProjectPropertiesListDataProps {
-    properties: any;
+    properties: { [key: string]: string };
 }
 
 interface CreateProjectPropertiesListActionProps {
     handleDelete: (key: string) => void;
 }
 
-const selector = formValueSelector(PROJECT_CREATE_FORM_NAME);
 const mapStateToProps = (state: RootState): CreateProjectPropertiesListDataProps => {
-    const properties = selector(state, 'properties');
+    const properties = CREATE_FORM_SELECTOR(state, 'properties');
     return { properties };
 };