46c773e5ff
Before https://github.com/user-attachments/assets/1761c49e-3d08-413a-bebd-11f4592a7de8 After https://github.com/user-attachments/assets/064ef28f-b131-48af-ad66-11f782298670
50 lines
2.0 KiB
TypeScript
50 lines
2.0 KiB
TypeScript
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
|
import { recordIndexKanbanAggregateOperationState } from '@/object-record/record-index/states/recordIndexKanbanAggregateOperationState';
|
|
import { ExtendedAggregateOperations } from '@/object-record/record-table/types/ExtendedAggregateOperations';
|
|
import { convertExtendedAggregateOperationToAggregateOperation } from '@/object-record/utils/convertExtendedAggregateOperationToAggregateOperation';
|
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
|
import { useUpdateView } from '@/views/hooks/useUpdateView';
|
|
import { useCallback } from 'react';
|
|
import { useSetRecoilState } from 'recoil';
|
|
|
|
export const useUpdateViewAggregate = () => {
|
|
const currentViewId = useRecoilComponentValueV2(
|
|
contextStoreCurrentViewIdComponentState,
|
|
);
|
|
const { updateView } = useUpdateView();
|
|
|
|
const setRecordIndexKanbanAggregateOperationState = useSetRecoilState(
|
|
recordIndexKanbanAggregateOperationState,
|
|
);
|
|
|
|
const updateViewAggregate = useCallback(
|
|
({
|
|
kanbanAggregateOperationFieldMetadataId,
|
|
kanbanAggregateOperation,
|
|
}: {
|
|
kanbanAggregateOperationFieldMetadataId: string | null;
|
|
kanbanAggregateOperation: ExtendedAggregateOperations | null;
|
|
}) => {
|
|
const convertedKanbanAggregateOperation =
|
|
convertExtendedAggregateOperationToAggregateOperation(
|
|
kanbanAggregateOperation,
|
|
);
|
|
updateView({
|
|
id: currentViewId,
|
|
kanbanAggregateOperationFieldMetadataId,
|
|
kanbanAggregateOperation: convertedKanbanAggregateOperation,
|
|
});
|
|
|
|
setRecordIndexKanbanAggregateOperationState({
|
|
operation: convertedKanbanAggregateOperation,
|
|
fieldMetadataId: kanbanAggregateOperationFieldMetadataId,
|
|
});
|
|
},
|
|
[currentViewId, updateView, setRecordIndexKanbanAggregateOperationState],
|
|
);
|
|
|
|
return {
|
|
updateViewAggregate,
|
|
};
|
|
};
|