diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-16 18:09:40 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-16 18:09:40 +0300 |
commit | f1357e5566b2c1f4f5e7b933b72a2d24431905e9 (patch) | |
tree | 058422b7532ed76b6363033a8dd4dd8272cd7c68 /app/assets/javascripts/merge_request_tabs.js | |
parent | 377d420e3d7e3f066c409714cbb9f7bb0a4882b6 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/merge_request_tabs.js')
-rw-r--r-- | app/assets/javascripts/merge_request_tabs.js | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/app/assets/javascripts/merge_request_tabs.js b/app/assets/javascripts/merge_request_tabs.js index 6aa4a024016..5a1410ceeba 100644 --- a/app/assets/javascripts/merge_request_tabs.js +++ b/app/assets/javascripts/merge_request_tabs.js @@ -174,6 +174,11 @@ function getActionFromHref(href) { return action; } +const pageBundles = { + show: () => import(/* webpackPrefetch: true */ '~/mr_notes/init_notes'), + diffs: () => import(/* webpackPrefetch: true */ '~/diffs'), +}; + export default class MergeRequestTabs { constructor({ action, setUrl, stubLocation } = {}) { this.mergeRequestTabs = document.querySelector('.merge-request-tabs-container'); @@ -199,10 +204,10 @@ export default class MergeRequestTabs { this.currentTab = null; this.diffsLoaded = false; - this.pipelinesLoaded = false; this.commitsLoaded = false; this.fixedLayoutPref = null; this.eventHub = createEventHub(); + this.loadedPages = { [action]: true }; this.setUrl = setUrl !== undefined ? setUrl : true; this.setCurrentAction = this.setCurrentAction.bind(this); @@ -295,6 +300,20 @@ export default class MergeRequestTabs { const tab = this.mergeRequestTabs.querySelector(`.${action}-tab`); if (tab) tab.classList.add('active'); + if (!this.loadedPages[action] && action in pageBundles) { + toggleLoader(true); + pageBundles[action]() + .then(({ default: init }) => { + toggleLoader(false); + init(); + this.loadedPages[action] = true; + }) + .catch(() => { + toggleLoader(false); + createAlert({ message: __('MergeRequest|Failed to load the page') }); + }); + } + if (window.gon?.features?.movedMrSidebar) { this.expandSidebar?.forEach((el) => el.classList.toggle('gl-display-none!', action !== 'show'), |