diff options
Diffstat (limited to 'app/assets/javascripts/merge_request_tabs.js')
-rw-r--r-- | app/assets/javascripts/merge_request_tabs.js | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/app/assets/javascripts/merge_request_tabs.js b/app/assets/javascripts/merge_request_tabs.js index 71ac0c1840e..1bcdc38ef3f 100644 --- a/app/assets/javascripts/merge_request_tabs.js +++ b/app/assets/javascripts/merge_request_tabs.js @@ -7,6 +7,7 @@ import Cookies from 'js-cookie'; import './breakpoints'; import './flash'; import BlobForkSuggestion from './blob/blob_fork_suggestion'; +import StickyTabs from './sticky_tabs'; /* eslint-disable max-len */ // MergeRequestTabs @@ -60,7 +61,7 @@ import BlobForkSuggestion from './blob/blob_fork_suggestion'; class MergeRequestTabs { - constructor({ action, setUrl, stubLocation } = {}) { + constructor({ action, setUrl, stubLocation, stickyTabs, unstickyTabs } = {}) { this.diffsLoaded = false; this.pipelinesLoaded = false; this.commitsLoaded = false; @@ -71,6 +72,8 @@ import BlobForkSuggestion from './blob/blob_fork_suggestion'; this.tabShown = this.tabShown.bind(this); this.showTab = this.showTab.bind(this); + if (stickyTabs && unstickyTabs) this.stickyTabs = new StickyTabs(stickyTabs, unstickyTabs); + if (stubLocation) { location = stubLocation; } @@ -86,6 +89,8 @@ import BlobForkSuggestion from './blob/blob_fork_suggestion'; $('.merge-request-tabs a[data-toggle="tab"]') .on('click', this.clickTab); + + if (this.stickyTabs) this.stickyTabs.bindEvents(); } // Used in tests @@ -96,6 +101,8 @@ import BlobForkSuggestion from './blob/blob_fork_suggestion'; $('.merge-request-tabs a[data-toggle="tab"]') .off('click', this.clickTab); + + if (this.stickyTabs) this.stickyTabs.unbindEvents(); } destroyPipelinesView() { @@ -156,7 +163,7 @@ import BlobForkSuggestion from './blob/blob_fork_suggestion'; if (location.hash) { const offset = 0 - ( $('.navbar-gitlab').outerHeight() + - $('.js-sticky-tabs').outerHeight() + (this.stickyTabs ? this.stickyTabs.unstickyTabsHeight : $('.js-tabs-affix').outerHeight()) ); const $el = $(`${container} ${location.hash}:not(.match)`); if ($el.length) { |