Follow-up from "Fix authoritative source of truth for diff files when loading batched diffs"
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
The following discussion from !23274 (merged) should be addressed:
-
@pslaughter started a discussion: suggestion (non-blocking): This business logic is a little confusing... It seems like under certain conditions, the
diffFiles
will never be updated, but it just so happens that another mutationSET_DIFF_DATA_BATCH
(which is very similar to this one) is actually handling the work.We could probably benefit from having a
SET_DIFF_META_DATA
which updates everything but thediffFiles
. We could then call this new mutation infetchDiffFilesMeta
and remove this conditional along with dedupingSET_DIFF_DATA_BATCH
andSET_DIFF_DATA
.Untested patch
diff --git a/app/assets/javascripts/diffs/store/actions.js b/app/assets/javascripts/diffs/store/actions.js index 31708cc4aa7..5964e634b73 100644 --- a/app/assets/javascripts/diffs/store/actions.js +++ b/app/assets/javascripts/diffs/store/actions.js @@ -84,7 +84,7 @@ export const fetchDiffFiles = ({ state, commit }) => { commit(types.SET_LOADING, false); commit(types.SET_MERGE_REQUEST_DIFFS, res.data.merge_request_diffs || []); - commit(types.SET_DIFF_DATA, res.data); + commit(types.SET_DIFF_DATA_BATCH, res.data); worker.postMessage(state.diffFiles); @@ -163,7 +163,7 @@ export const fetchDiffFilesMeta = ({ commit, state }) => { delete strippedData.diff_files; commit(types.SET_LOADING, false); commit(types.SET_MERGE_REQUEST_DIFFS, data.merge_request_diffs || []); - commit(types.SET_DIFF_DATA, strippedData); + commit(types.SET_DIFF_META_DATA, strippedData); worker.postMessage(prepareDiffData({ diff: data, priorFiles: state.diffFiles })); diff --git a/app/assets/javascripts/diffs/store/mutation_types.js b/app/assets/javascripts/diffs/store/mutation_types.js index 2097c8d3655..46d3dd32ef3 100644 --- a/app/assets/javascripts/diffs/store/mutation_types.js +++ b/app/assets/javascripts/diffs/store/mutation_types.js @@ -2,7 +2,7 @@ export const SET_BASE_CONFIG = 'SET_BASE_CONFIG'; export const SET_LOADING = 'SET_LOADING'; export const SET_BATCH_LOADING = 'SET_BATCH_LOADING'; export const SET_RETRIEVING_BATCHES = 'SET_RETRIEVING_BATCHES'; -export const SET_DIFF_DATA = 'SET_DIFF_DATA'; +export const SET_DIFF_META_DATA = 'SET_DIFF_META_DATA'; export const SET_DIFF_DATA_BATCH = 'SET_DIFF_DATA_BATCH'; export const SET_DIFF_VIEW_TYPE = 'SET_DIFF_VIEW_TYPE'; export const SET_MERGE_REQUEST_DIFFS = 'SET_MERGE_REQUEST_DIFFS'; diff --git a/app/assets/javascripts/diffs/store/mutations.js b/app/assets/javascripts/diffs/store/mutations.js index 5a9642cca74..fb1fe96abb6 100644 --- a/app/assets/javascripts/diffs/store/mutations.js +++ b/app/assets/javascripts/diffs/store/mutations.js @@ -44,19 +44,9 @@ export default { Object.assign(state, { retrievingBatches }); }, - [types.SET_DIFF_DATA](state, data) { - let files = state.diffFiles; - - if ( - !(gon?.features?.diffsBatchLoad && window.location.search.indexOf('diff_id') === -1) && - data.diff_files - ) { - files = prepareDiffData({ diff: data, priorFiles: files }); - } - + [types.SET_DIFF_META_DATA](state, { diff_files, ...data }) { Object.assign(state, { ...convertObjectPropsToCamelCase(data), - diffFiles: files, }); },
I know this isn't related to this MR. Just leaving some thoughts...
😄 Can we create a follow up issue for this?