diff options
Diffstat (limited to 'app/assets/javascripts/packages_and_registries/settings/project/graphql/utils/cache_update.js')
-rw-r--r-- | app/assets/javascripts/packages_and_registries/settings/project/graphql/utils/cache_update.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/app/assets/javascripts/packages_and_registries/settings/project/graphql/utils/cache_update.js b/app/assets/javascripts/packages_and_registries/settings/project/graphql/utils/cache_update.js new file mode 100644 index 00000000000..c4b2af13862 --- /dev/null +++ b/app/assets/javascripts/packages_and_registries/settings/project/graphql/utils/cache_update.js @@ -0,0 +1,21 @@ +import { produce } from 'immer'; +import expirationPolicyQuery from '../queries/get_expiration_policy.query.graphql'; + +export const updateContainerExpirationPolicy = (projectPath) => (client, { data: updatedData }) => { + const queryAndParams = { + query: expirationPolicyQuery, + variables: { projectPath }, + }; + const sourceData = client.readQuery(queryAndParams); + + const data = produce(sourceData, (draftState) => { + draftState.project.containerExpirationPolicy = { + ...updatedData.updateContainerExpirationPolicy.containerExpirationPolicy, + }; + }); + + client.writeQuery({ + ...queryAndParams, + data, + }); +}; |