Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/mr_notes/init.js')
-rw-r--r--app/assets/javascripts/mr_notes/init.js29
1 files changed, 24 insertions, 5 deletions
diff --git a/app/assets/javascripts/mr_notes/init.js b/app/assets/javascripts/mr_notes/init.js
index 9852efea95f..e8e3376cee2 100644
--- a/app/assets/javascripts/mr_notes/init.js
+++ b/app/assets/javascripts/mr_notes/init.js
@@ -1,12 +1,14 @@
import { parseBoolean } from '~/lib/utils/common_utils';
-import store from '~/mr_notes/stores';
+import mrNotes from '~/mr_notes/stores';
import { getLocationHash } from '~/lib/utils/url_utility';
import eventHub from '~/notes/event_hub';
import { initReviewBar } from '~/batch_comments';
import { initDiscussionCounter } from '~/mr_notes/discussion_counter';
import { initOverviewTabCounter } from '~/mr_notes/init_count';
+import { getDerivedMergeRequestInformation } from '~/diffs/utils/merge_request';
+import { getReviewsForMergeRequest } from '~/diffs/utils/file_reviews';
-function setupMrNotesState(notesDataset) {
+function setupMrNotesState(store, notesDataset, diffsDataset) {
const noteableData = JSON.parse(notesDataset.noteableData);
noteableData.noteableType = notesDataset.noteableType;
noteableData.targetType = notesDataset.targetType;
@@ -15,26 +17,43 @@ function setupMrNotesState(notesDataset) {
const currentUserData = JSON.parse(notesDataset.currentUserData);
const endpoints = { metadata: notesDataset.endpointMetadata };
+ const { mrPath } = getDerivedMergeRequestInformation({ endpoint: diffsDataset.endpoint });
+
store.dispatch('setNotesData', notesData);
store.dispatch('setNoteableData', noteableData);
store.dispatch('setUserData', currentUserData);
store.dispatch('setTargetNoteHash', getLocationHash());
store.dispatch('setEndpoints', endpoints);
+ store.dispatch('diffs/setBaseConfig', {
+ endpoint: diffsDataset.endpoint,
+ endpointMetadata: diffsDataset.endpointMetadata,
+ endpointBatch: diffsDataset.endpointBatch,
+ endpointDiffForPath: diffsDataset.endpointDiffForPath,
+ endpointCoverage: diffsDataset.endpointCoverage,
+ endpointUpdateUser: diffsDataset.updateCurrentUserPath,
+ projectPath: diffsDataset.projectPath,
+ dismissEndpoint: diffsDataset.dismissEndpoint,
+ showSuggestPopover: parseBoolean(diffsDataset.showSuggestPopover),
+ viewDiffsFileByFile: parseBoolean(diffsDataset.fileByFileDefault),
+ defaultSuggestionCommitMessage: diffsDataset.defaultSuggestionCommitMessage,
+ mrReviews: getReviewsForMergeRequest(mrPath),
+ });
}
-export function initMrStateLazyLoad({ reviewBarParams } = {}) {
+export function initMrStateLazyLoad(store = mrNotes, { reviewBarParams } = {}) {
store.dispatch('setActiveTab', window.mrTabs.getCurrentAction());
window.mrTabs.eventHub.$on('MergeRequestTabChange', (value) =>
store.dispatch('setActiveTab', value),
);
const discussionsEl = document.getElementById('js-vue-mr-discussions');
- const notesDataset = discussionsEl.dataset;
+ const diffsEl = document.getElementById('js-diffs-app');
+
let stop = () => {};
stop = store.watch(
(state) => state.page.activeTab,
(activeTab) => {
- setupMrNotesState(notesDataset);
+ setupMrNotesState(store, discussionsEl.dataset, diffsEl.dataset);
// prevent loading MR state on commits and pipelines pages
// this is due to them having a shared controller with the Overview page