diff options
Diffstat (limited to 'app/assets/javascripts/issue_show/issue.js')
-rw-r--r-- | app/assets/javascripts/issue_show/issue.js | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/app/assets/javascripts/issue_show/issue.js b/app/assets/javascripts/issue_show/issue.js index a93abbf64df..4374dba6eb7 100644 --- a/app/assets/javascripts/issue_show/issue.js +++ b/app/assets/javascripts/issue_show/issue.js @@ -1,14 +1,33 @@ import Vue from 'vue'; -import VueApollo from 'vue-apollo'; import { mapGetters } from 'vuex'; -import createDefaultClient from '~/lib/graphql'; import { parseBoolean } from '~/lib/utils/common_utils'; import IssuableApp from './components/app.vue'; import HeaderActions from './components/header_actions.vue'; +import { issueState } from './constants'; +import apolloProvider from './graphql'; +import getIssueStateQuery from './queries/get_issue_state.query.graphql'; + +const bootstrapApollo = (state = {}) => { + return apolloProvider.clients.defaultClient.cache.writeQuery({ + query: getIssueStateQuery, + data: { + issueState: state, + }, + }); +}; export function initIssuableApp(issuableData, store) { + const el = document.getElementById('js-issuable-app'); + + if (!el) { + return undefined; + } + + bootstrapApollo({ ...issueState, issueType: el.dataset.issueType }); + return new Vue({ - el: document.getElementById('js-issuable-app'), + el, + apolloProvider, store, computed: { ...mapGetters(['getNoteableData']), @@ -33,11 +52,7 @@ export function initIssueHeaderActions(store) { return undefined; } - Vue.use(VueApollo); - - const apolloProvider = new VueApollo({ - defaultClient: createDefaultClient(), - }); + bootstrapApollo({ ...issueState, issueType: el.dataset.issueType }); return new Vue({ el, |