63 lines
1.3 KiB
JavaScript
63 lines
1.3 KiB
JavaScript
import Vue from 'vue';
|
|
import { initReportAbuse } from '~/projects/report_abuse';
|
|
import MrMoreDropdown from '~/vue_shared/components/mr_more_dropdown.vue';
|
|
|
|
export const initMrMoreDropdown = () => {
|
|
const el = document.querySelector('.js-mr-more-dropdown');
|
|
|
|
if (!el) {
|
|
return false;
|
|
}
|
|
|
|
const {
|
|
mergeRequest,
|
|
projectPath,
|
|
url,
|
|
editUrl,
|
|
isCurrentUser,
|
|
isLoggedIn,
|
|
canUpdateMergeRequest,
|
|
open,
|
|
merged,
|
|
sourceProjectMissing,
|
|
clipboardText,
|
|
reportedUserId,
|
|
} = el.dataset;
|
|
|
|
let mr;
|
|
|
|
try {
|
|
mr = JSON.parse(mergeRequest);
|
|
} catch {
|
|
mr = {};
|
|
}
|
|
|
|
return new Vue({
|
|
el,
|
|
provide: {
|
|
reportAbusePath: el.dataset.reportAbusePath,
|
|
showSummaryNotesToggle: Boolean(document.querySelector('#js-summary-notes')),
|
|
},
|
|
beforeCreate() {
|
|
initReportAbuse();
|
|
},
|
|
render: (createElement) =>
|
|
createElement(MrMoreDropdown, {
|
|
props: {
|
|
mr,
|
|
projectPath,
|
|
url,
|
|
editUrl,
|
|
isCurrentUser,
|
|
isLoggedIn: Boolean(isLoggedIn),
|
|
canUpdateMergeRequest,
|
|
open,
|
|
isMerged: merged,
|
|
sourceProjectMissing,
|
|
clipboardText,
|
|
reportedUserId: Number(reportedUserId),
|
|
},
|
|
}),
|
|
});
|
|
};
|