Skip to content

Commit

Permalink
LPS-160037 Remove the unnecessary condition when we add an Aggregatio…
Browse files Browse the repository at this point in the history
…n Filter
  • Loading branch information
danvb112 authored and brianchandotcom committed Aug 13, 2022
1 parent 9ebde0c commit 40cfbc1
Showing 1 changed file with 63 additions and 120 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,10 @@ export default function EditObjectField({
({name}) => name === 'filters'
);

if (filterSetting?.length === 0 && objectFieldSettings) {
let newObjectFieldSettings: ObjectFieldSetting[] | undefined = [];
if (filterSetting) {
const [filter] = filterSetting;

let newFilterValues: ObjectFieldFilterSetting[] = [];

if (objectFieldBusinessType === 'Date') {
const dateJson: ObjectFieldDateRangeFilterSettings = {};
Expand All @@ -217,139 +219,80 @@ export default function EditObjectField({
dateJson[value] = label;
});

newObjectFieldSettings = [
...objectFieldSettings,
newFilterValues = [
...(filter.value as ObjectFieldFilterSetting[]),
{
name: 'filters',
value: [
{
filterBy: objectFieldName,
filterType,
json: {
[filterType as string]: value
? value
: dateJson,
},
},
],
filterBy: objectFieldName,
filterType,
json: dateJson,
},
];
}
else {
newObjectFieldSettings = [
...objectFieldSettings,
{
name: 'filters',
value: [
{
filterBy: objectFieldName,
filterType,
json: {
[filterType as string]: value
? value
: valueList?.map(({value}) => value),
},
},
],
},
];
}

setAggregationFilters(newAggregationFilters);
setValues({
objectFieldSettings: newObjectFieldSettings,
});
}
else {
if (filterSetting) {
const [filter] = filterSetting;

let newFilterValues: ObjectFieldFilterSetting[] = [];

if (objectFieldBusinessType === 'Date') {
const dateJson: ObjectFieldDateRangeFilterSettings = {};

valueList?.forEach(({label, value}) => {
dateJson[value] = label;
});
else if (
objectFieldBusinessType === 'Picklist' ||
objectFieldName === 'status'
) {
let picklistJson:
| ExcludesFilterOperator
| IncludesFilterOperator;

newFilterValues = [
...(filter.value as ObjectFieldFilterSetting[]),
{
filterBy: objectFieldName,
filterType,
json: dateJson,
},
];
}
else if (
objectFieldBusinessType === 'Picklist' ||
objectFieldName === 'status'
) {
let picklistJson:
| ExcludesFilterOperator
| IncludesFilterOperator;

if (filterType === 'excludes') {
picklistJson = {
not: {
in: valueList?.map(({value}) => value) as
| string[]
| number[],
},
};
}
else {
picklistJson = {
if (filterType === 'excludes') {
picklistJson = {
not: {
in: valueList?.map(({value}) => value) as
| string[]
| number[],
};
}

newFilterValues = [
...(filter.value as ObjectFieldFilterSetting[]),
{
filterBy: objectFieldName,
filterType,
json: picklistJson,
},
];
};
}
else {
newFilterValues = [
...(filter.value as ObjectFieldFilterSetting[]),
{
filterBy: objectFieldName,
filterType,
json: {
[filterType as string]: value
? value
: valueList?.map(({value}) => value),
},
},
];
picklistJson = {
in: valueList?.map(({value}) => value) as
| string[]
| number[],
};
}

const newFilter: ObjectFieldSetting = {
name: filter.name,
value: newFilterValues,
};

const newObjectFieldSettings:
| ObjectFieldSetting[]
| undefined = [
...(objectFieldSettings?.filter(
(fieldSetting) => fieldSetting.name !== 'filters'
) as ObjectFieldSetting[]),
newFilter,
newFilterValues = [
...(filter.value as ObjectFieldFilterSetting[]),
{
filterBy: objectFieldName,
filterType,
json: picklistJson,
},
];

setAggregationFilters(newAggregationFilters);
setValues({
objectFieldSettings: newObjectFieldSettings,
});
}
else {
newFilterValues = [
...(filter.value as ObjectFieldFilterSetting[]),
{
filterBy: objectFieldName,
filterType,
json: {
[filterType as string]: value
? value
: valueList?.map(({value}) => value),
},
},
];
}

const newFilter: ObjectFieldSetting = {
name: filter.name,
value: newFilterValues,
};

const newObjectFieldSettings: ObjectFieldSetting[] | undefined = [
...(objectFieldSettings?.filter(
(fieldSetting) => fieldSetting.name !== 'filters'
) as ObjectFieldSetting[]),
newFilter,
];

setAggregationFilters(newAggregationFilters);
setValues({
objectFieldSettings: newObjectFieldSettings,
});
}
};

Expand Down

0 comments on commit 40cfbc1

Please sign in to comment.