diff options
Diffstat (limited to 'app/assets/javascripts/static_site_editor/graphql/resolvers')
-rw-r--r-- | app/assets/javascripts/static_site_editor/graphql/resolvers/has_submitted_changes.js | 25 | ||||
-rw-r--r-- | app/assets/javascripts/static_site_editor/graphql/resolvers/submit_content_changes.js | 36 |
2 files changed, 48 insertions, 13 deletions
diff --git a/app/assets/javascripts/static_site_editor/graphql/resolvers/has_submitted_changes.js b/app/assets/javascripts/static_site_editor/graphql/resolvers/has_submitted_changes.js new file mode 100644 index 00000000000..ea49b21eb0d --- /dev/null +++ b/app/assets/javascripts/static_site_editor/graphql/resolvers/has_submitted_changes.js @@ -0,0 +1,25 @@ +import { produce } from 'immer'; +import query from '../queries/app_data.query.graphql'; + +const hasSubmittedChangesResolver = (_, { input: { hasSubmittedChanges } }, { cache }) => { + const oldData = cache.readQuery({ query }); + + const data = produce(oldData, draftState => { + // punctually modifying draftState as per immer docs upsets our linters + return { + ...draftState, + appData: { + __typename: 'AppData', + ...draftState.appData, + hasSubmittedChanges, + }, + }; + }); + + cache.writeQuery({ + query, + data, + }); +}; + +export default hasSubmittedChangesResolver; diff --git a/app/assets/javascripts/static_site_editor/graphql/resolvers/submit_content_changes.js b/app/assets/javascripts/static_site_editor/graphql/resolvers/submit_content_changes.js index 0cb26f88785..4137ede49c6 100644 --- a/app/assets/javascripts/static_site_editor/graphql/resolvers/submit_content_changes.js +++ b/app/assets/javascripts/static_site_editor/graphql/resolvers/submit_content_changes.js @@ -1,24 +1,34 @@ +import { produce } from 'immer'; import submitContentChanges from '../../services/submit_content_changes'; import savedContentMetaQuery from '../queries/saved_content_meta.query.graphql'; const submitContentChangesResolver = ( _, - { input: { project: projectId, username, sourcePath, content, images } }, + { input: { project: projectId, username, sourcePath, content, images, mergeRequestMeta } }, { cache }, ) => { - return submitContentChanges({ projectId, username, sourcePath, content, images }).then( - savedContentMeta => { - cache.writeQuery({ - query: savedContentMetaQuery, - data: { - savedContentMeta: { - __typename: 'SavedContentMeta', - ...savedContentMeta, - }, + return submitContentChanges({ + projectId, + username, + sourcePath, + content, + images, + mergeRequestMeta, + }).then(savedContentMeta => { + const data = produce(savedContentMeta, draftState => { + return { + savedContentMeta: { + __typename: 'SavedContentMeta', + ...draftState, }, - }); - }, - ); + }; + }); + + cache.writeQuery({ + query: savedContentMetaQuery, + data, + }); + }); }; export default submitContentChangesResolver; |