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:
@ -88,6 +88,7 @@ export const usePersistViewFieldRecords = () => {
|
||||
isVisible: viewField.isVisible,
|
||||
position: viewField.position,
|
||||
size: viewField.size,
|
||||
aggregateOperation: viewField.aggregateOperation,
|
||||
},
|
||||
},
|
||||
update: (cache, { data }) => {
|
||||
|
||||
@ -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,
|
||||
};
|
||||
};
|
||||
@ -14,5 +14,6 @@ export const mapColumnDefinitionsToViewFields = (
|
||||
size: columnDefinition.size,
|
||||
isVisible: columnDefinition.isVisible ?? true,
|
||||
definition: columnDefinition,
|
||||
aggregateOperation: columnDefinition.aggregateOperation,
|
||||
}));
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user