Skip to content

Commit

Permalink
Improve getThirdPartyOptions
Browse files Browse the repository at this point in the history
  • Loading branch information
cnasikas committed May 4, 2020
1 parent 582184b commit be692d3
Showing 1 changed file with 24 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,25 +48,33 @@ const actionTypeOptions: Array<EuiSuperSelectOption<ActionType>> = [
},
];

const createSuperSelectOptions = <T extends {}>(
options: Array<{ key: T; label: string }>
): Array<EuiSuperSelectOption<T>> => {
return options.map(option => ({
value: option.key,
inputDisplay: <span>{option.label}</span>,
'data-test-subj': `dropdown-mapping-${option.key}`,
}));
};

const getThirdPartyOptions = (
caseField: CaseField,
thirdPartyFields: Record<string, ConnectorConfigurationThirdPartyField>
) =>
createSuperSelectOptions<AllThirdPartyFields>(
Object.keys(thirdPartyFields)
.filter(key => thirdPartyFields[key].validSourceFields.includes(caseField))
.map(key => ({ key: key as AllThirdPartyFields, label: thirdPartyFields[key].label }))
.concat([{ key: 'not_mapped', label: i18n.MAPPING_FIELD_NOT_MAPPED }])
): Array<EuiSuperSelectOption<AllThirdPartyFields>> =>
(Object.keys(thirdPartyFields) as AllThirdPartyFields[]).reduce<
Array<EuiSuperSelectOption<AllThirdPartyFields>>
>(
(acc, key) => {
if (thirdPartyFields[key].validSourceFields.includes(caseField)) {
return [
...acc,
{
value: key,
inputDisplay: <span>{thirdPartyFields[key].label}</span>,
'data-test-subj': `dropdown-mapping-${key}`,
},
];
}
return acc;
},
[
{
value: 'not_mapped',
inputDisplay: i18n.MAPPING_FIELD_NOT_MAPPED,
'data-test-subj': 'edit-not_mapped',
},
]
);

export interface FieldMappingProps {
Expand Down

0 comments on commit be692d3

Please sign in to comment.