import '../webpack'; import setConfigs from '@gitlab/ui/dist/config'; import Vue from 'vue'; import { getLocation, sizeToParent } from '~/jira_connect/utils'; import GlFeatureFlagsPlugin from '~/vue_shared/gl_feature_flags_plugin'; import Translate from '~/vue_shared/translate'; import JiraConnectApp from './components/app.vue'; import createStore from './store'; const store = createStore(); const updateSignInLinks = async () => { const location = await getLocation(); Array.from(document.querySelectorAll('.js-jira-connect-sign-in')).forEach((el) => { const updatedLink = `${el.getAttribute('href')}?return_to=${location}`; el.setAttribute('href', updatedLink); }); }; export async function initJiraConnect() { await updateSignInLinks(); const el = document.querySelector('.js-jira-connect-app'); if (!el) { return null; } setConfigs(); Vue.use(Translate); Vue.use(GlFeatureFlagsPlugin); const { groupsPath, subscriptions, subscriptionsPath, usersPath } = el.dataset; sizeToParent(); return new Vue({ el, store, provide: { groupsPath, subscriptions: JSON.parse(subscriptions), subscriptionsPath, usersPath, }, render(createElement) { return createElement(JiraConnectApp); }, }); } document.addEventListener('DOMContentLoaded', initJiraConnect);