summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/merge_conflicts/merge_conflicts_bundle.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/merge_conflicts/merge_conflicts_bundle.js')
-rw-r--r--app/assets/javascripts/merge_conflicts/merge_conflicts_bundle.js92
1 files changed, 12 insertions, 80 deletions
diff --git a/app/assets/javascripts/merge_conflicts/merge_conflicts_bundle.js b/app/assets/javascripts/merge_conflicts/merge_conflicts_bundle.js
index 4b73dd317cd..cf02c6fbd6b 100644
--- a/app/assets/javascripts/merge_conflicts/merge_conflicts_bundle.js
+++ b/app/assets/javascripts/merge_conflicts/merge_conflicts_bundle.js
@@ -1,100 +1,32 @@
-import $ from 'jquery';
import Vue from 'vue';
-import { __ } from '~/locale';
-import { deprecatedCreateFlash as createFlash } from '../flash';
import initIssuableSidebar from '../init_issuable_sidebar';
-import './merge_conflict_store';
-import syntaxHighlight from '../syntax_highlight';
import MergeConflictsResolverApp from './merge_conflict_resolver_app.vue';
-import MergeConflictsService from './merge_conflict_service';
+import { createStore } from './store';
export default function initMergeConflicts() {
- const INTERACTIVE_RESOLVE_MODE = 'interactive';
const conflictsEl = document.querySelector('#conflicts');
- const { mergeConflictsStore } = gl.mergeConflicts;
- const mergeConflictsService = new MergeConflictsService({
- conflictsPath: conflictsEl.dataset.conflictsPath,
- resolveConflictsPath: conflictsEl.dataset.resolveConflictsPath,
- });
- const { sourceBranchPath, mergeRequestPath } = conflictsEl.dataset;
+ const {
+ sourceBranchPath,
+ mergeRequestPath,
+ conflictsPath,
+ resolveConflictsPath,
+ } = conflictsEl.dataset;
initIssuableSidebar();
+ const store = createStore();
+
return new Vue({
el: conflictsEl,
+ store,
provide: {
sourceBranchPath,
mergeRequestPath,
- },
- data: mergeConflictsStore.state,
- computed: {
- conflictsCountText() {
- return mergeConflictsStore.getConflictsCountText();
- },
- readyToCommit() {
- return mergeConflictsStore.isReadyToCommit();
- },
- commitButtonText() {
- return mergeConflictsStore.getCommitButtonText();
- },
- showDiffViewTypeSwitcher() {
- return mergeConflictsStore.fileTextTypePresent();
- },
+ resolveConflictsPath,
},
created() {
- mergeConflictsService
- .fetchConflictsData()
- .then(({ data }) => {
- if (data.type === 'error') {
- mergeConflictsStore.setFailedRequest(data.message);
- } else {
- mergeConflictsStore.setConflictsData(data);
- }
-
- mergeConflictsStore.setLoadingState(false);
-
- this.$nextTick(() => {
- syntaxHighlight($('.js-syntax-highlight'));
- });
- })
- .catch(() => {
- mergeConflictsStore.setLoadingState(false);
- mergeConflictsStore.setFailedRequest();
- });
- },
- methods: {
- handleViewTypeChange(viewType) {
- mergeConflictsStore.setViewType(viewType);
- },
- onClickResolveModeButton(file, mode) {
- if (mode === INTERACTIVE_RESOLVE_MODE && file.resolveEditChanged) {
- mergeConflictsStore.setPromptConfirmationState(file, true);
- return;
- }
-
- mergeConflictsStore.setFileResolveMode(file, mode);
- },
- acceptDiscardConfirmation(file) {
- mergeConflictsStore.setPromptConfirmationState(file, false);
- mergeConflictsStore.setFileResolveMode(file, INTERACTIVE_RESOLVE_MODE);
- },
- cancelDiscardConfirmation(file) {
- mergeConflictsStore.setPromptConfirmationState(file, false);
- },
- commit() {
- mergeConflictsStore.setSubmitState(true);
-
- mergeConflictsService
- .submitResolveConflicts(mergeConflictsStore.getCommitData())
- .then(({ data }) => {
- window.location.href = data.redirect_to;
- })
- .catch(() => {
- mergeConflictsStore.setSubmitState(false);
- createFlash(__('Failed to save merge conflicts resolutions. Please try again!'));
- });
- },
+ store.dispatch('fetchConflictsData', conflictsPath);
},
render(createElement) {
return createElement(MergeConflictsResolverApp);