Clean record filter and record sort (#10466)
This PR removes what's left from record filter and record sort previous logic to handle CRUD and state management with view. So everything that is named combinedFilter and combinedSort is removed here. We implement currentRecordFilters and currentRecordSorts everywhere. We also remove the event in a state onSortSelectComponentState. (a pattern we want to avoid)
This commit is contained in:
@ -1,112 +0,0 @@
|
||||
// Generate test for getCombinedViewFilters
|
||||
|
||||
import { ViewFilter } from '@/views/types/ViewFilter';
|
||||
import { ViewFilterOperand } from '@/views/types/ViewFilterOperand';
|
||||
import { getCombinedViewFilters } from '../getCombinedViewFilters';
|
||||
|
||||
describe('getCombinedViewFilters', () => {
|
||||
it('should return expected combined view filters when additional filters are present', () => {
|
||||
const viewFilters: ViewFilter[] = [
|
||||
{
|
||||
__typename: 'ViewFilter',
|
||||
id: 'id',
|
||||
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
|
||||
value: 'testValue',
|
||||
displayValue: 'Test Display Value',
|
||||
operand: ViewFilterOperand.Is,
|
||||
},
|
||||
];
|
||||
const toUpsertViewFilters: ViewFilter[] = [
|
||||
{
|
||||
__typename: 'ViewFilter',
|
||||
id: 'id',
|
||||
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
|
||||
value: 'testValue',
|
||||
displayValue: 'Test Display Value',
|
||||
operand: ViewFilterOperand.Is,
|
||||
},
|
||||
];
|
||||
const toDeleteViewFilterIds: string[] = [];
|
||||
|
||||
expect(
|
||||
getCombinedViewFilters(
|
||||
viewFilters,
|
||||
toUpsertViewFilters,
|
||||
toDeleteViewFilterIds,
|
||||
),
|
||||
).toEqual([
|
||||
{
|
||||
__typename: 'ViewFilter',
|
||||
id: 'id',
|
||||
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
|
||||
value: 'testValue',
|
||||
displayValue: 'Test Display Value',
|
||||
operand: ViewFilterOperand.Is,
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
it('should return expected combined view filters when additional filters are not present', () => {
|
||||
const viewFilters: ViewFilter[] = [
|
||||
{
|
||||
__typename: 'ViewFilter',
|
||||
id: 'id',
|
||||
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
|
||||
value: 'testValue',
|
||||
displayValue: 'Test Display Value',
|
||||
operand: ViewFilterOperand.Is,
|
||||
},
|
||||
];
|
||||
const toUpsertViewFilters: ViewFilter[] = [];
|
||||
const toDeleteViewFilterIds: string[] = [];
|
||||
|
||||
expect(
|
||||
getCombinedViewFilters(
|
||||
viewFilters,
|
||||
toUpsertViewFilters,
|
||||
toDeleteViewFilterIds,
|
||||
),
|
||||
).toEqual([
|
||||
{
|
||||
__typename: 'ViewFilter',
|
||||
id: 'id',
|
||||
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
|
||||
value: 'testValue',
|
||||
displayValue: 'Test Display Value',
|
||||
operand: ViewFilterOperand.Is,
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
it('should return expected combined view filters when additional filters are present and some filters are to be deleted', () => {
|
||||
const viewFilters: ViewFilter[] = [
|
||||
{
|
||||
__typename: 'ViewFilter',
|
||||
id: 'id',
|
||||
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
|
||||
value: 'testValue',
|
||||
displayValue: 'Test Display Value',
|
||||
operand: ViewFilterOperand.Is,
|
||||
},
|
||||
];
|
||||
const toUpsertViewFilters: ViewFilter[] = [
|
||||
{
|
||||
__typename: 'ViewFilter',
|
||||
id: 'id',
|
||||
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
|
||||
value: 'testValue',
|
||||
displayValue: 'Test Display Value',
|
||||
operand: ViewFilterOperand.Is,
|
||||
},
|
||||
];
|
||||
const toDeleteViewFilterIds: string[] = ['id'];
|
||||
|
||||
expect(
|
||||
getCombinedViewFilters(
|
||||
viewFilters,
|
||||
toUpsertViewFilters,
|
||||
toDeleteViewFilterIds,
|
||||
),
|
||||
).toEqual([]);
|
||||
});
|
||||
});
|
||||
@ -1,33 +0,0 @@
|
||||
import { ViewFilter } from '@/views/types/ViewFilter';
|
||||
|
||||
export const getCombinedViewFilters = (
|
||||
viewFilters: ViewFilter[],
|
||||
toUpsertViewFilters: ViewFilter[],
|
||||
toDeleteViewFilterIds: string[],
|
||||
): ViewFilter[] => {
|
||||
const toCreateViewFilters = toUpsertViewFilters.filter(
|
||||
(toUpsertViewFilter) =>
|
||||
!viewFilters.some(
|
||||
(viewFilter) => viewFilter.id === toUpsertViewFilter.id,
|
||||
),
|
||||
);
|
||||
|
||||
const toUpdateViewFilters = toUpsertViewFilters.filter((toUpsertViewFilter) =>
|
||||
viewFilters.some((viewFilter) => viewFilter.id === toUpsertViewFilter.id),
|
||||
);
|
||||
|
||||
const combinedViewFilters = viewFilters
|
||||
.filter((viewFilter) => !toDeleteViewFilterIds.includes(viewFilter.id))
|
||||
.map((viewFilter) => {
|
||||
const toUpdateViewFilter = toUpdateViewFilters.find(
|
||||
(toUpdateViewFilter) => toUpdateViewFilter.id === viewFilter.id,
|
||||
);
|
||||
|
||||
return toUpdateViewFilter ?? viewFilter;
|
||||
})
|
||||
.concat(toCreateViewFilters);
|
||||
|
||||
return Object.values(
|
||||
combinedViewFilters.reduce((acc, obj) => ({ ...acc, [obj.id]: obj }), {}),
|
||||
);
|
||||
};
|
||||
@ -1,34 +0,0 @@
|
||||
import { ViewSort } from '@/views/types/ViewSort';
|
||||
|
||||
export const getCombinedViewSorts = (
|
||||
viewSort: ViewSort[],
|
||||
toUpsertViewSorts: ViewSort[],
|
||||
toDeleteViewSortIds: string[],
|
||||
): ViewSort[] => {
|
||||
const toCreateViewSorts = toUpsertViewSorts.filter(
|
||||
(toUpsertViewSort) =>
|
||||
!viewSort.some((viewSort) => viewSort.id === toUpsertViewSort.id),
|
||||
);
|
||||
|
||||
const toUpdateViewSorts = toUpsertViewSorts.filter((toUpsertViewSort) =>
|
||||
viewSort.some((viewSort) => viewSort.id === toUpsertViewSort.id),
|
||||
);
|
||||
|
||||
const combinedViewSorts = viewSort
|
||||
.filter((viewSort) => !toDeleteViewSortIds.includes(viewSort.id))
|
||||
.map((viewSort) => {
|
||||
const toUpdateViewSort = toUpdateViewSorts.find(
|
||||
(toUpdateViewSort) => toUpdateViewSort.id === viewSort.id,
|
||||
);
|
||||
|
||||
return toUpdateViewSort ?? viewSort;
|
||||
})
|
||||
.concat(toCreateViewSorts);
|
||||
|
||||
return Object.values(
|
||||
combinedViewSorts.reduce(
|
||||
(acc, obj) => ({ ...acc, [obj.fieldMetadataId]: obj }),
|
||||
{},
|
||||
),
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user