Skip to content

Commit 4026a8a

Browse files
authored
Merge pull request #220 from CSCfi/CSCFC4EMSCR-587_Mapping-function-with-several-parameters
CSCFC4EMSCR-587 Send all parameter values to backend when editing mapping function
2 parents 6c9a839 + dcf311b commit 4026a8a

File tree

1 file changed

+5
-34
lines changed
  • mscr-ui/src/modules/crosswalk-editor/tabs/node-mappings

1 file changed

+5
-34
lines changed

mscr-ui/src/modules/crosswalk-editor/tabs/node-mappings/index.tsx

+5-34
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,6 @@ import {useRef} from 'react';
2424
import {highlightOperation} from "@app/modules/crosswalk-editor/mappings-accordion";
2525
import { useTranslation } from 'next-i18next';
2626

27-
interface mappingOperationValue {
28-
operationId: string;
29-
parameterId: string;
30-
value: string;
31-
}
32-
3327
export default function NodeMappings(props: {
3428
nodeSelections: CrosswalkConnectionNew[];
3529
performMappingsModalAction: any;
@@ -125,7 +119,6 @@ export default function NodeMappings(props: {
125119

126120
const [isMappingOperationValuesInit, setMappingOperationValuesInit] = useState<boolean>(false);
127121
const [isErrorBarVisible, setIsErrorBarVisible] = useState<boolean>(true);
128-
const [mappingOperationValues, setMappingOperationValues] = useState<mappingOperationValue[] | undefined>(undefined);
129122
const [mappingOperationSelection, setMappingOperationSelection] = useState<string | undefined>(undefined);
130123
const [mappingOperationFormatted, setMappingOperationFormatted] = useState([] as any);
131124
const [mappingFunctions, setMappingFunctions] = useState([] as any);
@@ -435,23 +428,8 @@ export default function NodeMappings(props: {
435428
function updateMappingOperationValue(operationKey: string, parameter: string, newValue: string) {
436429
setMappingOperationSelection(operationKey);
437430

438-
if (mappingOperationValues) {
439-
const newValues = mappingOperationValues.map(operation => {
440-
if (operation.parameterId === parameter && operation.operationId === operationKey) {
441-
operation.value = newValue;
442-
operation.operationId = operationKey;
443-
}
444-
return operation;
445-
});
446-
setMappingOperationValues(newValues);
447-
} else {
448-
const operations: mappingOperationValue[] = [];
449-
operations.push({operationId: operationKey, parameterId: parameter, value: newValue});
450-
setMappingOperationValues(operations);
451-
}
452-
453-
let formattedParams = generateMappingFunctionDefaultParams(operationKey);
454-
formattedParams[parameter] = newValue;
431+
const originalParams = mappingOperationFormatted?.id === operationKey ? mappingOperationFormatted.params : generateMappingFunctionDefaultParams(operationKey);
432+
const formattedParams = {...originalParams, [parameter]: newValue };
455433
let processing: any = {
456434
id: operationKey,
457435
params: formattedParams,
@@ -468,17 +446,10 @@ export default function NodeMappings(props: {
468446
}
469447

470448
function isMappingOperationValueValid(parameterName: string) {
471-
472-
let ret = false;
473-
if (mappingOperationValues) {
474-
mappingOperationValues.filter(x => x.parameterId === parameterName).map(x => {
475-
if (x.value) {
476-
ret = x.value.length > 0;
477-
}
478-
}
479-
);
480-
return ret;
449+
if (mappingOperationFormatted && 'params' in mappingOperationFormatted) {
450+
return mappingOperationFormatted.params[parameterName]?.length > 0;
481451
}
452+
return false;
482453
}
483454

484455
function generateMappingOperationFields(operationKey: string | undefined) {

0 commit comments

Comments
 (0)