From 6e328ec485e820e6d0cb38880c2feb28fe8b0ea4 Mon Sep 17 00:00:00 2001
From: JeremyWuuuuu <jeremyw@jihulab.com>
Date: Thu, 23 May 2024 14:11:15 +0800
Subject: [PATCH] Feat: add entry in mr tabs page for jh

* Export some function for reusing.
* Change the entry of merge_request_tabs.
---
 app/assets/javascripts/merge_request.js      | 2 +-
 app/assets/javascripts/merge_request_tabs.js | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/app/assets/javascripts/merge_request.js b/app/assets/javascripts/merge_request.js
index c837583dd45a4..03bfc4a9602e8 100644
--- a/app/assets/javascripts/merge_request.js
+++ b/app/assets/javascripts/merge_request.js
@@ -6,10 +6,10 @@ import { TYPE_MERGE_REQUEST } from '~/issues/constants';
 import toast from '~/vue_shared/plugins/global_toast';
 import { __ } from '~/locale';
 import { loadingIconForLegacyJS } from '~/loading_icon_for_legacy_js';
+import MergeRequestTabs from 'jh_else_ce/merge_request_tabs';
 import axios from './lib/utils/axios_utils';
 import { addDelimiter } from './lib/utils/text_utility';
 import { getParameterValues, setUrlParams } from './lib/utils/url_utility';
-import MergeRequestTabs from './merge_request_tabs';
 import TaskList from './task_list';
 
 function MergeRequest(opts) {
diff --git a/app/assets/javascripts/merge_request_tabs.js b/app/assets/javascripts/merge_request_tabs.js
index 48e4189810e6d..a1e29af224bd4 100644
--- a/app/assets/javascripts/merge_request_tabs.js
+++ b/app/assets/javascripts/merge_request_tabs.js
@@ -131,7 +131,7 @@ function mountPipelines() {
   return table;
 }
 
-function destroyPipelines(app) {
+export function destroyPipelines(app) {
   if (app && app.$destroy) {
     app.$destroy();
 
@@ -167,7 +167,7 @@ function loadDiffs({ url, tabs }) {
   });
 }
 
-function toggleLoader(state) {
+export function toggleLoader(state) {
   $('.mr-loading-status .loading').toggleClass('hide', !state);
 }
 
@@ -183,7 +183,7 @@ export function getActionFromHref(pathName) {
   return action;
 }
 
-const pageBundles = {
+export const pageBundles = {
   show: () => import(/* webpackPrefetch: true */ '~/mr_notes/mount_app'),
   diffs: () => import(/* webpackPrefetch: true */ '~/diffs'),
 };
@@ -208,6 +208,7 @@ export default class MergeRequestTabs {
     this.pageLayout = document.querySelector('.layout-page');
     this.expandSidebar = document.querySelectorAll('.js-expand-sidebar, .js-sidebar-toggle');
     this.paddingTop = 16;
+    this.actionRegex = /\/(commits|diffs|pipelines)(\.html)?\/?$/;
 
     this.scrollPositions = {};
 
@@ -435,7 +436,7 @@ export default class MergeRequestTabs {
     this.currentAction = action;
 
     // Remove a trailing '/commits' '/diffs' '/pipelines'
-    let newState = location.pathname.replace(/\/(commits|diffs|pipelines)(\.html)?\/?$/, '');
+    let newState = location.pathname.replace(this.actionRegex, '');
 
     // Append the new action if we're on a tab other than 'notes'
     if (this.currentAction !== 'show' && this.currentAction !== 'new') {
-- 
GitLab