Fix discard draft optimistic rendering (#9153)
Remove draft workflow version from cached workflow
This commit is contained in:
@ -23,6 +23,14 @@ const pagesCoverage = {
|
||||
exclude: ['src/generated/**/*', 'src/modules/**/*', 'src/**/*.ts'],
|
||||
};
|
||||
|
||||
const performanceCoverage = {
|
||||
branches: 35,
|
||||
statements: 60,
|
||||
lines: 60,
|
||||
functions: 45,
|
||||
exclude: ['src/generated/**/*', 'src/modules/**/*', 'src/**/*.ts'],
|
||||
};
|
||||
|
||||
const storybookStoriesFolders = process.env.STORYBOOK_SCOPE;
|
||||
|
||||
module.exports =
|
||||
@ -30,4 +38,6 @@ module.exports =
|
||||
? pagesCoverage
|
||||
: storybookStoriesFolders === 'modules'
|
||||
? modulesCoverage
|
||||
: storybookStoriesFolders === 'performance'
|
||||
? performanceCoverage
|
||||
: globalCoverage;
|
||||
|
||||
@ -1,10 +1,20 @@
|
||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||
import { useDeleteOneRecord } from '@/object-record/hooks/useDeleteOneRecord';
|
||||
import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordFromCache';
|
||||
import { Workflow, WorkflowVersion } from '@/workflow/types/Workflow';
|
||||
import { useApolloClient } from '@apollo/client';
|
||||
|
||||
export const useDeleteOneWorkflowVersion = () => {
|
||||
const apolloClient = useApolloClient();
|
||||
const { deleteOneRecord } = useDeleteOneRecord({
|
||||
objectNameSingular: CoreObjectNameSingular.WorkflowVersion,
|
||||
});
|
||||
const getWorkflowVersionFromCache = useGetRecordFromCache({
|
||||
objectNameSingular: CoreObjectNameSingular.WorkflowVersion,
|
||||
});
|
||||
const getWorkflowFromCache = useGetRecordFromCache({
|
||||
objectNameSingular: CoreObjectNameSingular.Workflow,
|
||||
});
|
||||
|
||||
const deleteOneWorkflowVersion = async ({
|
||||
workflowVersionId,
|
||||
@ -12,6 +22,32 @@ export const useDeleteOneWorkflowVersion = () => {
|
||||
workflowVersionId: string;
|
||||
}) => {
|
||||
await deleteOneRecord(workflowVersionId);
|
||||
|
||||
const cachedWorkflowVersion =
|
||||
getWorkflowVersionFromCache<WorkflowVersion>(workflowVersionId);
|
||||
|
||||
if (!cachedWorkflowVersion) {
|
||||
return;
|
||||
}
|
||||
|
||||
const cachedWorkflow = getWorkflowFromCache<Workflow>(
|
||||
cachedWorkflowVersion.workflowId,
|
||||
);
|
||||
|
||||
if (!cachedWorkflow) {
|
||||
return;
|
||||
}
|
||||
|
||||
apolloClient.cache.modify({
|
||||
id: apolloClient.cache.identify(cachedWorkflow),
|
||||
fields: {
|
||||
versions: () => {
|
||||
return cachedWorkflow.versions.filter(
|
||||
(version) => version.id !== workflowVersionId,
|
||||
);
|
||||
},
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
return { deleteOneWorkflowVersion };
|
||||
|
||||
Reference in New Issue
Block a user