[Aggregate queries for table views - #2] Add aggregate queries footer for simple views (#9025)

In this PR, we are introducing aggregate queries on table views, behind
a feature flag.
This does not work with view groups yet, nor with views that have
records until the bottom. (both will be tackled next)
This commit is contained in:
Marie
2024-12-12 13:38:58 +01:00
committed by GitHub
parent 5f2a39d9e9
commit 05cd0d1803
20 changed files with 662 additions and 62 deletions

View File

@ -88,6 +88,7 @@ export const usePersistViewFieldRecords = () => {
isVisible: viewField.isVisible,
position: viewField.position,
size: viewField.size,
aggregateOperation: viewField.aggregateOperation,
},
},
update: (cache, { data }) => {

View File

@ -0,0 +1,27 @@
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord';
import { ViewField } from '@/views/types/ViewField';
import { useRecoilCallback } from 'recoil';
import { isDefined } from 'twenty-ui';
export const useUpdateViewField = () => {
const { updateOneRecord } = useUpdateOneRecord({
objectNameSingular: CoreObjectNameSingular.ViewField,
});
const updateViewField = useRecoilCallback(
() => async (viewField: Partial<ViewField>) => {
if (isDefined(viewField.id)) {
await updateOneRecord({
idToUpdate: viewField.id,
updateOneRecordInput: viewField,
});
}
},
[updateOneRecord],
);
return {
updateViewField,
};
};

View File

@ -14,5 +14,6 @@ export const mapColumnDefinitionsToViewFields = (
size: columnDefinition.size,
isVisible: columnDefinition.isVisible ?? true,
definition: columnDefinition,
aggregateOperation: columnDefinition.aggregateOperation,
}));
};