* Finished optimistic effects * Fixed tests * Added unit test on useActivityConnectionUtils to prepare for refactor * Fixed console.log
40 lines
1.5 KiB
TypeScript
40 lines
1.5 KiB
TypeScript
import { useApolloClient } from '@apollo/client';
|
|
|
|
import { useActivityConnectionUtils } from '@/activities/hooks/useActivityConnectionUtils';
|
|
import { ActivityForEditor } from '@/activities/types/ActivityForEditor';
|
|
import { triggerDeleteRecordsOptimisticEffect } from '@/apollo/optimistic-effect/utils/triggerDeleteRecordsOptimisticEffect';
|
|
import { useObjectMetadataItemOnly } from '@/object-metadata/hooks/useObjectMetadataItemOnly';
|
|
import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems';
|
|
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
|
|
|
// TODO: this should be useDeleteRecordFromCache
|
|
export const useDeleteActivityFromCache = () => {
|
|
const { makeActivityWithConnection } = useActivityConnectionUtils();
|
|
|
|
const apolloClient = useApolloClient();
|
|
|
|
const { objectMetadataItem: objectMetadataItemActivity } =
|
|
useObjectMetadataItemOnly({
|
|
objectNameSingular: CoreObjectNameSingular.Activity,
|
|
});
|
|
|
|
const { objectMetadataItems } = useObjectMetadataItems();
|
|
|
|
const deleteActivityFromCache = (activityToDelete: ActivityForEditor) => {
|
|
const { activityWithConnection } = makeActivityWithConnection(
|
|
activityToDelete as any, // TODO: fix type
|
|
);
|
|
|
|
triggerDeleteRecordsOptimisticEffect({
|
|
cache: apolloClient.cache,
|
|
objectMetadataItem: objectMetadataItemActivity,
|
|
objectMetadataItems,
|
|
recordsToDelete: [activityWithConnection],
|
|
});
|
|
};
|
|
|
|
return {
|
|
deleteActivityFromCache,
|
|
};
|
|
};
|