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'],
|
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;
|
const storybookStoriesFolders = process.env.STORYBOOK_SCOPE;
|
||||||
|
|
||||||
module.exports =
|
module.exports =
|
||||||
@ -30,4 +38,6 @@ module.exports =
|
|||||||
? pagesCoverage
|
? pagesCoverage
|
||||||
: storybookStoriesFolders === 'modules'
|
: storybookStoriesFolders === 'modules'
|
||||||
? modulesCoverage
|
? modulesCoverage
|
||||||
|
: storybookStoriesFolders === 'performance'
|
||||||
|
? performanceCoverage
|
||||||
: globalCoverage;
|
: globalCoverage;
|
||||||
|
|||||||
@ -1,10 +1,20 @@
|
|||||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||||
import { useDeleteOneRecord } from '@/object-record/hooks/useDeleteOneRecord';
|
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 = () => {
|
export const useDeleteOneWorkflowVersion = () => {
|
||||||
|
const apolloClient = useApolloClient();
|
||||||
const { deleteOneRecord } = useDeleteOneRecord({
|
const { deleteOneRecord } = useDeleteOneRecord({
|
||||||
objectNameSingular: CoreObjectNameSingular.WorkflowVersion,
|
objectNameSingular: CoreObjectNameSingular.WorkflowVersion,
|
||||||
});
|
});
|
||||||
|
const getWorkflowVersionFromCache = useGetRecordFromCache({
|
||||||
|
objectNameSingular: CoreObjectNameSingular.WorkflowVersion,
|
||||||
|
});
|
||||||
|
const getWorkflowFromCache = useGetRecordFromCache({
|
||||||
|
objectNameSingular: CoreObjectNameSingular.Workflow,
|
||||||
|
});
|
||||||
|
|
||||||
const deleteOneWorkflowVersion = async ({
|
const deleteOneWorkflowVersion = async ({
|
||||||
workflowVersionId,
|
workflowVersionId,
|
||||||
@ -12,6 +22,32 @@ export const useDeleteOneWorkflowVersion = () => {
|
|||||||
workflowVersionId: string;
|
workflowVersionId: string;
|
||||||
}) => {
|
}) => {
|
||||||
await deleteOneRecord(workflowVersionId);
|
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 };
|
return { deleteOneWorkflowVersion };
|
||||||
|
|||||||
Reference in New Issue
Block a user