Skip to content
This repository was archived by the owner on Jan 26, 2024. It is now read-only.

Commit 85857da

Browse files
committed
Multistore fix
1 parent 72e10ad commit 85857da

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

core/app.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export function createApp (ssrContext, config): { app: Vue, router: any, store:
7373
Vue.filter(key, filtersObject[key])
7474
})
7575
const httpLink = new HttpLink({
76-
uri: store.state.config.graphql.host.indexOf('://') >== 0 ? store.state.config.graphql.host : (store.state.config.server.protocol + '://' + store.state.config.graphql.host + ':' + store.state.config.graphql.port + '/graphql')
76+
uri: store.state.config.graphql.host.indexOf('://') >= 0 ? store.state.config.graphql.host : (store.state.config.server.protocol + '://' + store.state.config.graphql.host + ':' + store.state.config.graphql.port + '/graphql')
7777
})
7878

7979
const apolloClient = new ApolloClient({

core/store/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ export function initStore () {
151151
const config = rootStore.state.config
152152
const storeView = currentStoreView()
153153
const dbNamePrefix = storeView.storeCode ? storeView.storeCode + '-' : ''
154-
155154
Vue.prototype.$db = {
155+
currentStoreCode: storeView.storeCode,
156156
ordersCollection: new UniversalStorage(localForage.createInstance({
157157
name: 'shop',
158158
storeName: 'orders',

core/store/lib/multistore.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import rootStore, { initStore } from '../'
22
import { loadLanguageAsync } from '@vue-storefront/i18n'
3+
import Vue from 'vue'
34

45
export function currentStoreView () {
56
return rootStore.state.storeView
@@ -14,6 +15,7 @@ export function prepareStoreView (storeCode) {
1415
storeCode: '',
1516
storeId: 0
1617
}
18+
const storeViewHasChanged = !rootStore.state.storeView || rootStore.state.storeView.storeCode !== storeCode
1719
if (storeCode) { // current store code
1820
if ((storeView = config.storeViews[storeCode])) {
1921
storeView.storeCode = storeCode
@@ -24,8 +26,10 @@ export function prepareStoreView (storeCode) {
2426
rootStore.state.user.current_storecode = config.defaultStoreCode || ''
2527
}
2628
loadLanguageAsync(storeView.i18n.defaultLocale)
27-
if (!rootStore.state.storeView || rootStore.state.storeView.storeCode !== storeCode) {
29+
if (storeViewHasChanged) {
2830
rootStore.state.storeView = storeView
31+
}
32+
if (storeViewHasChanged || Vue.prototype.$db.currentStoreCode !== storeCode) {
2933
initStore()
3034
}
3135
return storeView

0 commit comments

Comments
 (0)