Commit 72b8bb6c authored by Tim Zallmann's avatar Tim Zallmann Committed by Miguel Rincon

Make the Invite Modal load conditionally

This change makes two components that were previously added 
to all pages, load when needed to reduce bundle size.

Changelog: performance
parent a8e64e16
...@@ -2,8 +2,6 @@ import { GlBreakpointInstance as bp, breakpoints } from '@gitlab/ui/dist/utils'; ...@@ -2,8 +2,6 @@ import { GlBreakpointInstance as bp, breakpoints } from '@gitlab/ui/dist/utils';
import $ from 'jquery'; import $ from 'jquery';
import { debounce } from 'lodash'; import { debounce } from 'lodash';
import { getCookie, setCookie, parseBoolean } from '~/lib/utils/common_utils'; import { getCookie, setCookie, parseBoolean } from '~/lib/utils/common_utils';
import initInviteMembersModal from '~/invite_members/init_invite_members_modal';
import initInviteMembersTrigger from '~/invite_members/init_invite_members_trigger';
export const SIDEBAR_COLLAPSED_CLASS = 'js-sidebar-collapsed'; export const SIDEBAR_COLLAPSED_CLASS = 'js-sidebar-collapsed';
...@@ -114,7 +112,26 @@ export default class ContextualSidebar { ...@@ -114,7 +112,26 @@ export default class ContextualSidebar {
this.toggleCollapsedSidebar(collapse, true); this.toggleCollapsedSidebar(collapse, true);
} }
const modalEl = document.querySelector('.js-invite-members-modal');
if (modalEl) {
import(
/* webpackChunkName: 'initInviteMembersModal' */ '~/invite_members/init_invite_members_modal'
)
.then(({ default: initInviteMembersModal }) => {
initInviteMembersModal(); initInviteMembersModal();
})
.catch(() => {});
const inviteTriggers = document.querySelectorAll('.js-invite-members-trigger');
if (inviteTriggers) {
import(
/* webpackChunkName: 'initInviteMembersTrigger' */ '~/invite_members/init_invite_members_trigger'
)
.then(({ default: initInviteMembersTrigger }) => {
initInviteMembersTrigger(); initInviteMembersTrigger();
})
.catch(() => {});
}
}
} }
} }
import Vue from 'vue'; import Vue from 'vue';
import { GlToast } from '@gitlab/ui';
import { convertObjectPropsToCamelCase, parseBoolean } from '~/lib/utils/common_utils'; import { convertObjectPropsToCamelCase, parseBoolean } from '~/lib/utils/common_utils';
import IntegrationForm from './components/integration_form.vue'; import IntegrationForm from './components/integration_form.vue';
import { createStore } from './store'; import { createStore } from './store';
Vue.use(GlToast);
function parseBooleanInData(data) { function parseBooleanInData(data) {
const result = {}; const result = {};
Object.entries(data).forEach(([key, value]) => { Object.entries(data).forEach(([key, value]) => {
......
import Vue from 'vue'; import Vue from 'vue';
import initInviteMembersModal from '~/invite_members/init_invite_members_modal'; import initInviteMembersModal from '~/invite_members/init_invite_members_modal';
import initInviteMembersTrigger from '~/invite_members/init_invite_members_trigger';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import LearnGitlab from '../components/learn_gitlab.vue'; import LearnGitlab from '../components/learn_gitlab.vue';
...@@ -24,5 +25,7 @@ function initLearnGitlab() { ...@@ -24,5 +25,7 @@ function initLearnGitlab() {
}); });
} }
initLearnGitlab();
initInviteMembersModal(); initInviteMembersModal();
initInviteMembersTrigger();
initLearnGitlab();
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment