From 147de25ce09527dcd4181367ebaf347aeb9fefe6 Mon Sep 17 00:00:00 2001 From: michasik Date: Fri, 5 Jul 2019 09:46:49 +0200 Subject: [PATCH 01/18] Moves homepage module to theme --- src/modules/index.ts | 4 ++-- src/themes/default/index.js | 4 ++++ src/{modules => themes/default/store}/homepage/index.ts | 1 - src/themes/default/store/index.ts | 6 ++++++ 4 files changed, 12 insertions(+), 3 deletions(-) rename src/{modules => themes/default/store}/homepage/index.ts (79%) create mode 100644 src/themes/default/store/index.ts diff --git a/src/modules/index.ts b/src/modules/index.ts index 9dbd29e736..3eb2f34092 100644 --- a/src/modules/index.ts +++ b/src/modules/index.ts @@ -12,7 +12,7 @@ import { Newsletter } from '@vue-storefront/core/modules/newsletter' import { Notification } from '@vue-storefront/core/modules/notification' import { RecentlyViewed } from '@vue-storefront/core/modules/recently-viewed' import { Url } from '@vue-storefront/core/modules/url' -import { Homepage } from './homepage' +// import { Homepage } from '../themes/default/store/homepage' import { Claims } from './claims' import { PromotedOffers } from './promoted-offers' import { Ui } from './ui-store' @@ -65,7 +65,7 @@ export const registerModules: VueStorefrontModule[] = [ Notification, Ui, RecentlyViewed, - Homepage, + // Homepage, Claims, PromotedOffers, googleTagManager, diff --git a/src/themes/default/index.js b/src/themes/default/index.js index bf24e4169d..0171b77e34 100644 --- a/src/themes/default/index.js +++ b/src/themes/default/index.js @@ -6,6 +6,8 @@ import VueProgressBar from 'vue-progressbar' import '@vue-storefront/core/lib/passive-listeners' import { RouterManager } from '@vue-storefront/core/lib/router-manager' import { once } from '@vue-storefront/core/helpers' +import { registerModules } from '@vue-storefront/core/lib/module' +import { registerModules as modules } from './store/index' once('__VUE_EXTEND_DROPPOINT_VPB__', () => { Vue.use(VueProgressBar) @@ -21,6 +23,8 @@ function initTheme (app, router, store, config, ssrContext) { RouterManager.addRoutes(routes, router) } +registerModules(modules, App) + export { themeEntry, initTheme diff --git a/src/modules/homepage/index.ts b/src/themes/default/store/homepage/index.ts similarity index 79% rename from src/modules/homepage/index.ts rename to src/themes/default/store/homepage/index.ts index aba4587b72..e4a99c70c9 100644 --- a/src/modules/homepage/index.ts +++ b/src/themes/default/store/homepage/index.ts @@ -1,5 +1,4 @@ import { createModule } from '@vue-storefront/core/lib/module' -// TODO: Move the logic to appropriate modules and depreciate this one const KEY = 'homepage' const store = { diff --git a/src/themes/default/store/index.ts b/src/themes/default/store/index.ts new file mode 100644 index 0000000000..6f00ff1ae6 --- /dev/null +++ b/src/themes/default/store/index.ts @@ -0,0 +1,6 @@ +import { VueStorefrontModule } from '@vue-storefront/core/lib/module'; +import { Homepage } from './homepage' + +export const registerModules: VueStorefrontModule[] = [ + Homepage, +]; From 8effbd31957f381bbbe2acba407b1294155fe1cf Mon Sep 17 00:00:00 2001 From: michasik Date: Fri, 5 Jul 2019 10:31:41 +0200 Subject: [PATCH 02/18] Moves promotedOffers module to theme. Merges promotedOffers store into one file. --- src/modules/index.ts | 4 +- src/modules/promoted-offers/index.ts | 8 --- src/modules/promoted-offers/store/actions.ts | 27 --------- src/modules/promoted-offers/store/getters.ts | 12 ---- src/modules/promoted-offers/store/index.ts | 21 ------- .../promoted-offers/store/mutations.ts | 13 ----- src/themes/default/store/index.ts | 2 + .../default/store/promoted-offers/index.ts | 57 +++++++++++++++++++ .../types/PromotedOffersState.ts | 0 9 files changed, 61 insertions(+), 83 deletions(-) delete mode 100644 src/modules/promoted-offers/index.ts delete mode 100644 src/modules/promoted-offers/store/actions.ts delete mode 100644 src/modules/promoted-offers/store/getters.ts delete mode 100644 src/modules/promoted-offers/store/index.ts delete mode 100644 src/modules/promoted-offers/store/mutations.ts create mode 100644 src/themes/default/store/promoted-offers/index.ts rename src/{modules => themes/default/store}/promoted-offers/types/PromotedOffersState.ts (100%) diff --git a/src/modules/index.ts b/src/modules/index.ts index 3eb2f34092..e110ce7eeb 100644 --- a/src/modules/index.ts +++ b/src/modules/index.ts @@ -14,7 +14,7 @@ import { RecentlyViewed } from '@vue-storefront/core/modules/recently-viewed' import { Url } from '@vue-storefront/core/modules/url' // import { Homepage } from '../themes/default/store/homepage' import { Claims } from './claims' -import { PromotedOffers } from './promoted-offers' +// import { PromotedOffers } from './promoted-offers' import { Ui } from './ui-store' // import { GoogleAnalytics } from './google-analytics'; // import { Hotjar } from './hotjar'; @@ -67,7 +67,7 @@ export const registerModules: VueStorefrontModule[] = [ RecentlyViewed, // Homepage, Claims, - PromotedOffers, + // PromotedOffers, googleTagManager, // GoogleAnalytics, // Hotjar, diff --git a/src/modules/promoted-offers/index.ts b/src/modules/promoted-offers/index.ts deleted file mode 100644 index 15b73399fc..0000000000 --- a/src/modules/promoted-offers/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { createModule } from '@vue-storefront/core/lib/module' -import { module } from './store' - -const KEY = 'promoted' -export const PromotedOffers = createModule({ - key: KEY, - store: { modules: [{ key: KEY, module }] } -}) diff --git a/src/modules/promoted-offers/store/actions.ts b/src/modules/promoted-offers/store/actions.ts deleted file mode 100644 index cd10471c32..0000000000 --- a/src/modules/promoted-offers/store/actions.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { ActionTree } from 'vuex' -import RootState from '@vue-storefront/core/types/RootState' -import PromotedOffersState from '../types/PromotedOffersState' -import { Logger } from '@vue-storefront/core/lib/logger' - -const actions: ActionTree = { - async updatePromotedOffers ({commit, rootState}, data) { - let promotedBannersResource = rootState.storeView && rootState.storeView.storeCode ? `banners/${rootState.storeView.storeCode}_promoted_offers` : `promoted_offers` - try { - const promotedOffersModule = await import(/* webpackChunkName: "vsf-promoted-offers-[request]" */ `theme/resource/${promotedBannersResource}.json`) - commit('updatePromotedOffers', promotedOffersModule) - } catch (err) { - Logger.debug('Unable to load promotedOffers' + err)() - } - }, - async updateHeadImage ({commit, rootState}, data) { - let mainImageResource = rootState.storeView && rootState.storeView.storeCode ? `banners/${rootState.storeView.storeCode}_main-image` : `main-image` - try { - const imageModule = await import(/* webpackChunkName: "vsf-head-img-[request]" */ `theme/resource/${mainImageResource}.json`) - commit('SET_HEAD_IMAGE', imageModule.image) - } catch (err) { - Logger.debug('Unable to load headImage' + err)() - } - } -} - -export default actions diff --git a/src/modules/promoted-offers/store/getters.ts b/src/modules/promoted-offers/store/getters.ts deleted file mode 100644 index 8e9f74ac19..0000000000 --- a/src/modules/promoted-offers/store/getters.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { GetterTree } from 'vuex' -import RootState from '@vue-storefront/core/types/RootState' -import PromotedOffersState from '../types/PromotedOffersState' - -const getters: GetterTree = { - getPromotedOffers: state => { - return state.banners - }, - getHeadImage: state => state.headImage -} - -export default getters diff --git a/src/modules/promoted-offers/store/index.ts b/src/modules/promoted-offers/store/index.ts deleted file mode 100644 index 83bf36f518..0000000000 --- a/src/modules/promoted-offers/store/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Module } from 'vuex' -import getters from './getters' -import actions from './actions' -import mutations from './mutations' -import RootState from '@vue-storefront/core/types/RootState' -import PromotedOffersState from '../types/PromotedOffersState' - -export const module: Module = { - namespaced: true, - state: { - banners: { - mainBanners: [], - smallBanners: [], - productBanners: [] - }, - headImage: null - }, - getters, - actions, - mutations -} diff --git a/src/modules/promoted-offers/store/mutations.ts b/src/modules/promoted-offers/store/mutations.ts deleted file mode 100644 index acb3864d5a..0000000000 --- a/src/modules/promoted-offers/store/mutations.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { MutationTree } from 'vuex' -import PromotedOffersState from '../types/PromotedOffersState' - -const mutations: MutationTree = { - updatePromotedOffers (state, data) { - state.banners = data - }, - SET_HEAD_IMAGE (state, headImage) { - state.headImage = headImage - } -} - -export default mutations diff --git a/src/themes/default/store/index.ts b/src/themes/default/store/index.ts index 6f00ff1ae6..92973687b9 100644 --- a/src/themes/default/store/index.ts +++ b/src/themes/default/store/index.ts @@ -1,6 +1,8 @@ import { VueStorefrontModule } from '@vue-storefront/core/lib/module'; import { Homepage } from './homepage' +import { PromotedOffers } from './promoted-offers' export const registerModules: VueStorefrontModule[] = [ Homepage, + PromotedOffers ]; diff --git a/src/themes/default/store/promoted-offers/index.ts b/src/themes/default/store/promoted-offers/index.ts new file mode 100644 index 0000000000..1e43b98f7d --- /dev/null +++ b/src/themes/default/store/promoted-offers/index.ts @@ -0,0 +1,57 @@ +import { Module } from 'vuex' +import { createModule } from '@vue-storefront/core/lib/module' +import { Logger } from '@vue-storefront/core/lib/logger' +import RootState from '@vue-storefront/core/types/RootState' +import PromotedOffersState from './types/PromotedOffersState' + +const module: Module = { + namespaced: true, + state: { + banners: { + mainBanners: [], + smallBanners: [], + productBanners: [] + }, + headImage: null + }, + getters: { + getPromotedOffers: state => { + return state.banners + }, + getHeadImage: state => state.headImage + }, + actions: { + async updatePromotedOffers ({commit, rootState}, data) { + let promotedBannersResource = rootState.storeView && rootState.storeView.storeCode ? `banners/${rootState.storeView.storeCode}_promoted_offers` : `promoted_offers` + try { + const promotedOffersModule = await import(/* webpackChunkName: "vsf-promoted-offers-[request]" */ `theme/resource/${promotedBannersResource}.json`) + commit('updatePromotedOffers', promotedOffersModule) + } catch (err) { + Logger.debug('Unable to load promotedOffers' + err)() + } + }, + async updateHeadImage ({commit, rootState}, data) { + let mainImageResource = rootState.storeView && rootState.storeView.storeCode ? `banners/${rootState.storeView.storeCode}_main-image` : `main-image` + try { + const imageModule = await import(/* webpackChunkName: "vsf-head-img-[request]" */ `theme/resource/${mainImageResource}.json`) + commit('SET_HEAD_IMAGE', imageModule.image) + } catch (err) { + Logger.debug('Unable to load headImage' + err)() + } + } + }, + mutations: { + updatePromotedOffers (state, data) { + state.banners = data + }, + SET_HEAD_IMAGE (state, headImage) { + state.headImage = headImage + } + } +} + +const KEY = 'promoted' +export const PromotedOffers = createModule({ + key: KEY, + store: { modules: [{ key: KEY, module }] } +}) diff --git a/src/modules/promoted-offers/types/PromotedOffersState.ts b/src/themes/default/store/promoted-offers/types/PromotedOffersState.ts similarity index 100% rename from src/modules/promoted-offers/types/PromotedOffersState.ts rename to src/themes/default/store/promoted-offers/types/PromotedOffersState.ts From 259cdb08f9cc247a6557790bd08b3119a82db17c Mon Sep 17 00:00:00 2001 From: michasik Date: Fri, 5 Jul 2019 11:54:31 +0200 Subject: [PATCH 03/18] Moves ui-store from modules to theme --- src/modules/index.ts | 4 ++-- src/themes/default/store/index.ts | 4 +++- src/{modules => themes/default/store}/ui-store/index.ts | 1 - 3 files changed, 5 insertions(+), 4 deletions(-) rename src/{modules => themes/default/store}/ui-store/index.ts (96%) diff --git a/src/modules/index.ts b/src/modules/index.ts index e110ce7eeb..9cc6f61166 100644 --- a/src/modules/index.ts +++ b/src/modules/index.ts @@ -15,7 +15,7 @@ import { Url } from '@vue-storefront/core/modules/url' // import { Homepage } from '../themes/default/store/homepage' import { Claims } from './claims' // import { PromotedOffers } from './promoted-offers' -import { Ui } from './ui-store' +// import { Ui } from '../themes/default/store/ui-store' // import { GoogleAnalytics } from './google-analytics'; // import { Hotjar } from './hotjar'; import { googleTagManager } from './google-tag-manager'; @@ -63,7 +63,7 @@ export const registerModules: VueStorefrontModule[] = [ Wishlist, Newsletter, Notification, - Ui, + // Ui, RecentlyViewed, // Homepage, Claims, diff --git a/src/themes/default/store/index.ts b/src/themes/default/store/index.ts index 92973687b9..9b7db69b57 100644 --- a/src/themes/default/store/index.ts +++ b/src/themes/default/store/index.ts @@ -1,8 +1,10 @@ import { VueStorefrontModule } from '@vue-storefront/core/lib/module'; import { Homepage } from './homepage' import { PromotedOffers } from './promoted-offers' +import { Ui } from './ui-store' export const registerModules: VueStorefrontModule[] = [ Homepage, - PromotedOffers + PromotedOffers, + Ui ]; diff --git a/src/modules/ui-store/index.ts b/src/themes/default/store/ui-store/index.ts similarity index 96% rename from src/modules/ui-store/index.ts rename to src/themes/default/store/ui-store/index.ts index 9878b4e17b..eaa0350612 100644 --- a/src/modules/ui-store/index.ts +++ b/src/themes/default/store/ui-store/index.ts @@ -1,5 +1,4 @@ import { createModule } from '@vue-storefront/core/lib/module' -// TODO: Move the logic to appropriate modules and deprecate this one const KEY = 'ui' const store = { From 2d0a025fcd43e4e4e80a16c4c8db62426c94b357 Mon Sep 17 00:00:00 2001 From: michasik Date: Fri, 5 Jul 2019 12:02:08 +0200 Subject: [PATCH 04/18] Changes folder name from "store" to "modules" --- src/themes/default/index.js | 2 +- src/themes/default/{store => modules}/homepage/index.ts | 0 src/themes/default/{store => modules}/index.ts | 0 src/themes/default/{store => modules}/promoted-offers/index.ts | 0 .../promoted-offers/types/PromotedOffersState.ts | 0 src/themes/default/{store => modules}/ui-store/index.ts | 0 6 files changed, 1 insertion(+), 1 deletion(-) rename src/themes/default/{store => modules}/homepage/index.ts (100%) rename src/themes/default/{store => modules}/index.ts (100%) rename src/themes/default/{store => modules}/promoted-offers/index.ts (100%) rename src/themes/default/{store => modules}/promoted-offers/types/PromotedOffersState.ts (100%) rename src/themes/default/{store => modules}/ui-store/index.ts (100%) diff --git a/src/themes/default/index.js b/src/themes/default/index.js index 0171b77e34..6e4433c6e5 100644 --- a/src/themes/default/index.js +++ b/src/themes/default/index.js @@ -7,7 +7,7 @@ import '@vue-storefront/core/lib/passive-listeners' import { RouterManager } from '@vue-storefront/core/lib/router-manager' import { once } from '@vue-storefront/core/helpers' import { registerModules } from '@vue-storefront/core/lib/module' -import { registerModules as modules } from './store/index' +import { registerModules as modules } from './modules/index' once('__VUE_EXTEND_DROPPOINT_VPB__', () => { Vue.use(VueProgressBar) diff --git a/src/themes/default/store/homepage/index.ts b/src/themes/default/modules/homepage/index.ts similarity index 100% rename from src/themes/default/store/homepage/index.ts rename to src/themes/default/modules/homepage/index.ts diff --git a/src/themes/default/store/index.ts b/src/themes/default/modules/index.ts similarity index 100% rename from src/themes/default/store/index.ts rename to src/themes/default/modules/index.ts diff --git a/src/themes/default/store/promoted-offers/index.ts b/src/themes/default/modules/promoted-offers/index.ts similarity index 100% rename from src/themes/default/store/promoted-offers/index.ts rename to src/themes/default/modules/promoted-offers/index.ts diff --git a/src/themes/default/store/promoted-offers/types/PromotedOffersState.ts b/src/themes/default/modules/promoted-offers/types/PromotedOffersState.ts similarity index 100% rename from src/themes/default/store/promoted-offers/types/PromotedOffersState.ts rename to src/themes/default/modules/promoted-offers/types/PromotedOffersState.ts diff --git a/src/themes/default/store/ui-store/index.ts b/src/themes/default/modules/ui-store/index.ts similarity index 100% rename from src/themes/default/store/ui-store/index.ts rename to src/themes/default/modules/ui-store/index.ts From 2a11bc4893e78100d4df2c605ab0689683cba1c2 Mon Sep 17 00:00:00 2001 From: michasik Date: Fri, 5 Jul 2019 13:00:41 +0200 Subject: [PATCH 05/18] Moves order-history component from source modules to order module in theme --- .../modules/order/components/UserOrdersHistory.ts | 4 ++-- src/modules/index.ts | 4 ++-- src/modules/order-history/index.ts | 6 ------ .../default/components/core/blocks/MyAccount/MyOrders.vue | 4 ++-- 4 files changed, 6 insertions(+), 12 deletions(-) rename src/modules/order-history/components/UserOrders.ts => core/modules/order/components/UserOrdersHistory.ts (92%) delete mode 100644 src/modules/order-history/index.ts diff --git a/src/modules/order-history/components/UserOrders.ts b/core/modules/order/components/UserOrdersHistory.ts similarity index 92% rename from src/modules/order-history/components/UserOrders.ts rename to core/modules/order/components/UserOrdersHistory.ts index 0e7fb1d9a9..ffd6bf5cde 100644 --- a/src/modules/order-history/components/UserOrders.ts +++ b/core/modules/order/components/UserOrdersHistory.ts @@ -1,9 +1,8 @@ import MyOrders from '@vue-storefront/core/compatibility/components/blocks/MyAccount/MyOrders' -import { mapGetters } from 'vuex'; import onBottomScroll from '@vue-storefront/core/mixins/onBottomScroll' export default { - name: 'UserOrders', + name: 'UserOrdersHistory', mixins: [MyOrders, onBottomScroll], data () { return { @@ -17,6 +16,7 @@ export default { }, computed: { ordersHistory () { + let items = this.getOrdersHistory if (this.lazyLoadOrdersOnScroll) { items = items.slice(0, (this.pagination.perPage + 1) * this.pagination.current) diff --git a/src/modules/index.ts b/src/modules/index.ts index 9cc6f61166..5bedaaa238 100644 --- a/src/modules/index.ts +++ b/src/modules/index.ts @@ -24,7 +24,7 @@ import { PaymentBackendMethods } from './payment-backend-methods'; import { PaymentCashOnDelivery } from './payment-cash-on-delivery'; import { RawOutputExample } from './raw-output-example' import { InstantCheckout } from './instant-checkout' -import { OrderHistory } from './order-history' +// import { OrderHistory } from './order-history' // import { Example } from './module-template' @@ -78,6 +78,6 @@ export const registerModules: VueStorefrontModule[] = [ InstantCheckout, Url, CatalogNext, - OrderHistory + // OrderHistory // Example ] diff --git a/src/modules/order-history/index.ts b/src/modules/order-history/index.ts deleted file mode 100644 index d7c3bd3774..0000000000 --- a/src/modules/order-history/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { createModule } from '@vue-storefront/core/lib/module' - -const KEY = 'order-history' -export const OrderHistory = createModule({ - key: KEY -}) diff --git a/src/themes/default/components/core/blocks/MyAccount/MyOrders.vue b/src/themes/default/components/core/blocks/MyAccount/MyOrders.vue index e21b789289..2f9ea70236 100644 --- a/src/themes/default/components/core/blocks/MyAccount/MyOrders.vue +++ b/src/themes/default/components/core/blocks/MyAccount/MyOrders.vue @@ -80,10 +80,10 @@ From 55ad3e016918ee1146c88c0e4519abd140c0bf1c Mon Sep 17 00:00:00 2001 From: michasik Date: Fri, 5 Jul 2019 13:09:05 +0200 Subject: [PATCH 06/18] Moves WebShare component from core to themes --- .../themes/default/components/theme}/WebShare.vue | 0 src/themes/default/pages/Product.vue | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename {core/modules/social-share/components => src/themes/default/components/theme}/WebShare.vue (100%) diff --git a/core/modules/social-share/components/WebShare.vue b/src/themes/default/components/theme/WebShare.vue similarity index 100% rename from core/modules/social-share/components/WebShare.vue rename to src/themes/default/components/theme/WebShare.vue diff --git a/src/themes/default/pages/Product.vue b/src/themes/default/pages/Product.vue index d3895c4d11..aa90315daa 100644 --- a/src/themes/default/pages/Product.vue +++ b/src/themes/default/pages/Product.vue @@ -243,7 +243,7 @@ import ProductBundleOptions from 'theme/components/core/ProductBundleOptions.vue import ProductGallery from 'theme/components/core/ProductGallery' import PromotedOffers from 'theme/components/theme/blocks/PromotedOffers/PromotedOffers' import focusClean from 'theme/components/theme/directives/focusClean' -import WebShare from '@vue-storefront/core/modules/social-share/components/WebShare' +import WebShare from 'theme/components/theme/WebShare' import BaseInputNumber from 'theme/components/core/blocks/Form/BaseInputNumber' import SizeGuide from 'theme/components/core/blocks/Product/SizeGuide' From fac97311d3920595cf4c898cc887a2fe89d85c59 Mon Sep 17 00:00:00 2001 From: michasik Date: Fri, 5 Jul 2019 13:09:45 +0200 Subject: [PATCH 07/18] Fixes lint errors --- core/modules/order/components/UserOrdersHistory.ts | 1 - src/modules/index.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/core/modules/order/components/UserOrdersHistory.ts b/core/modules/order/components/UserOrdersHistory.ts index ffd6bf5cde..741257d989 100644 --- a/core/modules/order/components/UserOrdersHistory.ts +++ b/core/modules/order/components/UserOrdersHistory.ts @@ -16,7 +16,6 @@ export default { }, computed: { ordersHistory () { - let items = this.getOrdersHistory if (this.lazyLoadOrdersOnScroll) { items = items.slice(0, (this.pagination.perPage + 1) * this.pagination.current) diff --git a/src/modules/index.ts b/src/modules/index.ts index 5bedaaa238..a7421cc3a2 100644 --- a/src/modules/index.ts +++ b/src/modules/index.ts @@ -77,7 +77,7 @@ export const registerModules: VueStorefrontModule[] = [ AmpRenderer, InstantCheckout, Url, - CatalogNext, + CatalogNext // OrderHistory // Example ] From e361afa7bb0d71eb4e8a22ac57e75e11ad31605d Mon Sep 17 00:00:00 2001 From: michasik Date: Fri, 5 Jul 2019 13:54:27 +0200 Subject: [PATCH 08/18] Updates changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25ff9ab62a..a0c7ddc9b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,11 +23,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Shipping address is saved as default when not logged in user chooses to create account during checkout - @iwonapiotrowska (#2636) - Can set transition style for Modal content - @grimasod (#3146) - Added stock to cart items - @cheeerd (#3166) +- Moves theme specific stores and components into themes - @michasik (#3139) ## [1.10.0-rc.2] - UNRELEASED ### Fixed -- Fixed wrong meta description attribute by page overwrite - @przspa (#3091) +- Fixed wrong meta description attribute by page overwrite - @przspa (#3091) - The SSR Cms console errors fixed + `magento-2-cms` module removed - @pkarw (#3155) ## [1.10.0-rc.1] - 2019.06.19 From bf431f56484425f87c27aa82b3b58fd331e3bf24 Mon Sep 17 00:00:00 2001 From: michasik Date: Fri, 5 Jul 2019 14:24:33 +0200 Subject: [PATCH 09/18] Moves claims module into theme [WIP] --- src/modules/index.ts | 4 ++-- .../default}/modules/claims/hooks/beforeRegistration.ts | 0 src/{ => themes/default}/modules/claims/index.ts | 0 src/{ => themes/default}/modules/claims/store/actions.ts | 0 src/{ => themes/default}/modules/claims/store/index.ts | 0 src/{ => themes/default}/modules/claims/types/ClaimsState.ts | 0 src/themes/default/modules/index.ts | 4 +++- 7 files changed, 5 insertions(+), 3 deletions(-) rename src/{ => themes/default}/modules/claims/hooks/beforeRegistration.ts (100%) rename src/{ => themes/default}/modules/claims/index.ts (100%) rename src/{ => themes/default}/modules/claims/store/actions.ts (100%) rename src/{ => themes/default}/modules/claims/store/index.ts (100%) rename src/{ => themes/default}/modules/claims/types/ClaimsState.ts (100%) diff --git a/src/modules/index.ts b/src/modules/index.ts index a7421cc3a2..8ba2222ccd 100644 --- a/src/modules/index.ts +++ b/src/modules/index.ts @@ -13,7 +13,7 @@ import { Notification } from '@vue-storefront/core/modules/notification' import { RecentlyViewed } from '@vue-storefront/core/modules/recently-viewed' import { Url } from '@vue-storefront/core/modules/url' // import { Homepage } from '../themes/default/store/homepage' -import { Claims } from './claims' +// import { Claims } from '../themes/default/modules/claims' // import { PromotedOffers } from './promoted-offers' // import { Ui } from '../themes/default/store/ui-store' // import { GoogleAnalytics } from './google-analytics'; @@ -66,7 +66,7 @@ export const registerModules: VueStorefrontModule[] = [ // Ui, RecentlyViewed, // Homepage, - Claims, + // Claims, // PromotedOffers, googleTagManager, // GoogleAnalytics, diff --git a/src/modules/claims/hooks/beforeRegistration.ts b/src/themes/default/modules/claims/hooks/beforeRegistration.ts similarity index 100% rename from src/modules/claims/hooks/beforeRegistration.ts rename to src/themes/default/modules/claims/hooks/beforeRegistration.ts diff --git a/src/modules/claims/index.ts b/src/themes/default/modules/claims/index.ts similarity index 100% rename from src/modules/claims/index.ts rename to src/themes/default/modules/claims/index.ts diff --git a/src/modules/claims/store/actions.ts b/src/themes/default/modules/claims/store/actions.ts similarity index 100% rename from src/modules/claims/store/actions.ts rename to src/themes/default/modules/claims/store/actions.ts diff --git a/src/modules/claims/store/index.ts b/src/themes/default/modules/claims/store/index.ts similarity index 100% rename from src/modules/claims/store/index.ts rename to src/themes/default/modules/claims/store/index.ts diff --git a/src/modules/claims/types/ClaimsState.ts b/src/themes/default/modules/claims/types/ClaimsState.ts similarity index 100% rename from src/modules/claims/types/ClaimsState.ts rename to src/themes/default/modules/claims/types/ClaimsState.ts diff --git a/src/themes/default/modules/index.ts b/src/themes/default/modules/index.ts index 9b7db69b57..c1f3e520f0 100644 --- a/src/themes/default/modules/index.ts +++ b/src/themes/default/modules/index.ts @@ -2,9 +2,11 @@ import { VueStorefrontModule } from '@vue-storefront/core/lib/module'; import { Homepage } from './homepage' import { PromotedOffers } from './promoted-offers' import { Ui } from './ui-store' +import { Claims } from './claims'; export const registerModules: VueStorefrontModule[] = [ Homepage, PromotedOffers, - Ui + Ui, + Claims ]; From f6e6179e520aee20fe045d2c99c2ee01af6179b3 Mon Sep 17 00:00:00 2001 From: michasik Date: Mon, 8 Jul 2019 14:22:15 +0200 Subject: [PATCH 10/18] Folder name changed from modules to store --- src/themes/default/index.js | 2 +- .../{modules => store}/claims/hooks/beforeRegistration.ts | 0 src/themes/default/{modules => store}/claims/index.ts | 0 src/themes/default/{modules => store}/claims/store/actions.ts | 0 src/themes/default/{modules => store}/claims/store/index.ts | 0 .../default/{modules => store}/claims/types/ClaimsState.ts | 0 src/themes/default/{modules => store}/homepage/index.ts | 0 src/themes/default/{modules => store}/index.ts | 0 src/themes/default/{modules => store}/promoted-offers/index.ts | 0 .../promoted-offers/types/PromotedOffersState.ts | 0 src/themes/default/{modules => store}/ui-store/index.ts | 0 11 files changed, 1 insertion(+), 1 deletion(-) rename src/themes/default/{modules => store}/claims/hooks/beforeRegistration.ts (100%) rename src/themes/default/{modules => store}/claims/index.ts (100%) rename src/themes/default/{modules => store}/claims/store/actions.ts (100%) rename src/themes/default/{modules => store}/claims/store/index.ts (100%) rename src/themes/default/{modules => store}/claims/types/ClaimsState.ts (100%) rename src/themes/default/{modules => store}/homepage/index.ts (100%) rename src/themes/default/{modules => store}/index.ts (100%) rename src/themes/default/{modules => store}/promoted-offers/index.ts (100%) rename src/themes/default/{modules => store}/promoted-offers/types/PromotedOffersState.ts (100%) rename src/themes/default/{modules => store}/ui-store/index.ts (100%) diff --git a/src/themes/default/index.js b/src/themes/default/index.js index 6e4433c6e5..0171b77e34 100644 --- a/src/themes/default/index.js +++ b/src/themes/default/index.js @@ -7,7 +7,7 @@ import '@vue-storefront/core/lib/passive-listeners' import { RouterManager } from '@vue-storefront/core/lib/router-manager' import { once } from '@vue-storefront/core/helpers' import { registerModules } from '@vue-storefront/core/lib/module' -import { registerModules as modules } from './modules/index' +import { registerModules as modules } from './store/index' once('__VUE_EXTEND_DROPPOINT_VPB__', () => { Vue.use(VueProgressBar) diff --git a/src/themes/default/modules/claims/hooks/beforeRegistration.ts b/src/themes/default/store/claims/hooks/beforeRegistration.ts similarity index 100% rename from src/themes/default/modules/claims/hooks/beforeRegistration.ts rename to src/themes/default/store/claims/hooks/beforeRegistration.ts diff --git a/src/themes/default/modules/claims/index.ts b/src/themes/default/store/claims/index.ts similarity index 100% rename from src/themes/default/modules/claims/index.ts rename to src/themes/default/store/claims/index.ts diff --git a/src/themes/default/modules/claims/store/actions.ts b/src/themes/default/store/claims/store/actions.ts similarity index 100% rename from src/themes/default/modules/claims/store/actions.ts rename to src/themes/default/store/claims/store/actions.ts diff --git a/src/themes/default/modules/claims/store/index.ts b/src/themes/default/store/claims/store/index.ts similarity index 100% rename from src/themes/default/modules/claims/store/index.ts rename to src/themes/default/store/claims/store/index.ts diff --git a/src/themes/default/modules/claims/types/ClaimsState.ts b/src/themes/default/store/claims/types/ClaimsState.ts similarity index 100% rename from src/themes/default/modules/claims/types/ClaimsState.ts rename to src/themes/default/store/claims/types/ClaimsState.ts diff --git a/src/themes/default/modules/homepage/index.ts b/src/themes/default/store/homepage/index.ts similarity index 100% rename from src/themes/default/modules/homepage/index.ts rename to src/themes/default/store/homepage/index.ts diff --git a/src/themes/default/modules/index.ts b/src/themes/default/store/index.ts similarity index 100% rename from src/themes/default/modules/index.ts rename to src/themes/default/store/index.ts diff --git a/src/themes/default/modules/promoted-offers/index.ts b/src/themes/default/store/promoted-offers/index.ts similarity index 100% rename from src/themes/default/modules/promoted-offers/index.ts rename to src/themes/default/store/promoted-offers/index.ts diff --git a/src/themes/default/modules/promoted-offers/types/PromotedOffersState.ts b/src/themes/default/store/promoted-offers/types/PromotedOffersState.ts similarity index 100% rename from src/themes/default/modules/promoted-offers/types/PromotedOffersState.ts rename to src/themes/default/store/promoted-offers/types/PromotedOffersState.ts diff --git a/src/themes/default/modules/ui-store/index.ts b/src/themes/default/store/ui-store/index.ts similarity index 100% rename from src/themes/default/modules/ui-store/index.ts rename to src/themes/default/store/ui-store/index.ts From 70b3fc3620e63b5ce34fc6d7a05f6034ab71edfd Mon Sep 17 00:00:00 2001 From: michasik Date: Mon, 8 Jul 2019 16:09:20 +0200 Subject: [PATCH 11/18] Refactors moved stores. Changes the way they are registered. --- src/themes/default/index.js | 16 ++++++--- src/themes/default/store/claims.ts | 33 +++++++++++++++++ .../store/claims/hooks/beforeRegistration.ts | 14 -------- src/themes/default/store/claims/index.ts | 11 ------ .../default/store/claims/store/actions.ts | 35 ------------------- .../default/store/claims/store/index.ts | 9 ----- .../default/store/claims/types/ClaimsState.ts | 3 -- src/themes/default/store/homepage.ts | 15 ++++++++ src/themes/default/store/homepage/index.ts | 13 ------- src/themes/default/store/index.ts | 12 ------- .../index.ts => promoted-offers.ts} | 21 ++++++----- .../types/PromotedOffersState.ts | 8 ----- .../store/{ui-store/index.ts => ui.ts} | 10 +----- 13 files changed, 71 insertions(+), 129 deletions(-) create mode 100644 src/themes/default/store/claims.ts delete mode 100644 src/themes/default/store/claims/hooks/beforeRegistration.ts delete mode 100644 src/themes/default/store/claims/index.ts delete mode 100644 src/themes/default/store/claims/store/actions.ts delete mode 100644 src/themes/default/store/claims/store/index.ts delete mode 100644 src/themes/default/store/claims/types/ClaimsState.ts create mode 100644 src/themes/default/store/homepage.ts delete mode 100644 src/themes/default/store/homepage/index.ts delete mode 100644 src/themes/default/store/index.ts rename src/themes/default/store/{promoted-offers/index.ts => promoted-offers.ts} (79%) delete mode 100644 src/themes/default/store/promoted-offers/types/PromotedOffersState.ts rename src/themes/default/store/{ui-store/index.ts => ui.ts} (89%) diff --git a/src/themes/default/index.js b/src/themes/default/index.js index 0171b77e34..535d45eecd 100644 --- a/src/themes/default/index.js +++ b/src/themes/default/index.js @@ -6,8 +6,12 @@ import VueProgressBar from 'vue-progressbar' import '@vue-storefront/core/lib/passive-listeners' import { RouterManager } from '@vue-storefront/core/lib/router-manager' import { once } from '@vue-storefront/core/helpers' -import { registerModules } from '@vue-storefront/core/lib/module' -import { registerModules as modules } from './store/index' + +import { initCacheStorage } from '@vue-storefront/core/helpers/initCacheStorage'; +import { store as claimsStore } from './store/claims' +import { store as homeStore } from './store/homepage' +import { store as uiStore } from './store/ui' +import { store as promotedStore } from './store/promoted-offers' once('__VUE_EXTEND_DROPPOINT_VPB__', () => { Vue.use(VueProgressBar) @@ -21,9 +25,13 @@ function initTheme (app, router, store, config, ssrContext) { // { name: 'de-checkout', path: '/checkout', component: CheckoutCustomized }, setupMultistoreRoutes(config, router, routes) RouterManager.addRoutes(routes, router) -} -registerModules(modules, App) + Vue.prototype.$db.claimsCollection = initCacheStorage('claims'); + store.registerModule('claims', claimsStore); + store.registerModule('homepage', homeStore); + store.registerModule('ui', uiStore); + store.registerModule('promoted', promotedStore); +} export { themeEntry, diff --git a/src/themes/default/store/claims.ts b/src/themes/default/store/claims.ts new file mode 100644 index 0000000000..dbc048f08c --- /dev/null +++ b/src/themes/default/store/claims.ts @@ -0,0 +1,33 @@ +import Vue from 'vue' +import { Logger } from '@vue-storefront/core/lib/logger' + +export const store = { + namespaced: true, + actions: { + set (context, { claimCode, value, description }) { + const claimCollection = Vue.prototype.$db.claimsCollection + claimCollection.setItem(claimCode, { + code: claimCode, + created_at: new Date(), + value: value, + description: description + }).catch((reason) => { + Logger.error(reason) // it doesn't work on SSR + }) + }, + + unset (context, { claimCode }) { + const claimCollection = Vue.prototype.$db.claimsCollection + claimCollection.removeItem(claimCode).catch((reason) => { + Logger.error(reason) // it doesn't work on SSR + }) + }, + + check (context, { claimCode }) { + const claimCollection = Vue.prototype.$db.claimsCollection + return claimCollection.getItem(claimCode).catch((reason) => { + Logger.error(reason) // it doesn't work on SSR + }) + } + } +} diff --git a/src/themes/default/store/claims/hooks/beforeRegistration.ts b/src/themes/default/store/claims/hooks/beforeRegistration.ts deleted file mode 100644 index 9683299350..0000000000 --- a/src/themes/default/store/claims/hooks/beforeRegistration.ts +++ /dev/null @@ -1,14 +0,0 @@ -import * as localForage from 'localforage' -import UniversalStorage from '@vue-storefront/core/store/lib/storage' -import { currentStoreView } from '@vue-storefront/core/lib/multistore' - -export function beforeRegistration ({ Vue, config, store, isServer }) { - const storeView = currentStoreView() - const dbNamePrefix = storeView.storeCode ? storeView.storeCode + '-' : '' - - Vue.prototype.$db.claimsCollection = new UniversalStorage(localForage.createInstance({ - name: (config.storeViews.commonCache ? '' : dbNamePrefix) + 'shop', - storeName: 'claims', - driver: localForage[config.localForage.defaultDrivers['claims']] - })) -} diff --git a/src/themes/default/store/claims/index.ts b/src/themes/default/store/claims/index.ts deleted file mode 100644 index 71068a97f7..0000000000 --- a/src/themes/default/store/claims/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { createModule } from '@vue-storefront/core/lib/module' -import { beforeRegistration } from './hooks/beforeRegistration' -import { module } from './store' - -const KEY = 'claims' - -export const Claims = createModule({ - key: KEY, - store: { modules: [{ key: KEY, module }] }, - beforeRegistration -}) diff --git a/src/themes/default/store/claims/store/actions.ts b/src/themes/default/store/claims/store/actions.ts deleted file mode 100644 index 54180bcfb2..0000000000 --- a/src/themes/default/store/claims/store/actions.ts +++ /dev/null @@ -1,35 +0,0 @@ -import Vue from 'vue' -import { ActionTree } from 'vuex' -import RootState from '@vue-storefront/core/types/RootState' -import ClaimsState from '../types/ClaimsState' -import { Logger } from '@vue-storefront/core/lib/logger' - -const actions: ActionTree = { - set (context, { claimCode, value, description }) { - const claimCollection = Vue.prototype.$db.claimsCollection - claimCollection.setItem(claimCode, { - code: claimCode, - created_at: new Date(), - value: value, - description: description - }).catch((reason) => { - Logger.error(reason) // it doesn't work on SSR - }) - }, - - unset (context, { claimCode }) { - const claimCollection = Vue.prototype.$db.claimsCollection - claimCollection.removeItem(claimCode).catch((reason) => { - Logger.error(reason) // it doesn't work on SSR - }) - }, - - check (context, { claimCode }) { - const claimCollection = Vue.prototype.$db.claimsCollection - return claimCollection.getItem(claimCode).catch((reason) => { - Logger.error(reason) // it doesn't work on SSR - }) - } -} - -export default actions diff --git a/src/themes/default/store/claims/store/index.ts b/src/themes/default/store/claims/store/index.ts deleted file mode 100644 index 5986f0c106..0000000000 --- a/src/themes/default/store/claims/store/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Module } from 'vuex' -import actions from './actions' -import RootState from '@vue-storefront/core/types/RootState' -import ClaimsState from '../types/ClaimsState' - -export const module: Module = { - namespaced: true, - actions -} diff --git a/src/themes/default/store/claims/types/ClaimsState.ts b/src/themes/default/store/claims/types/ClaimsState.ts deleted file mode 100644 index ba5738b7a5..0000000000 --- a/src/themes/default/store/claims/types/ClaimsState.ts +++ /dev/null @@ -1,3 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export default interface ClaimsState { -} diff --git a/src/themes/default/store/homepage.ts b/src/themes/default/store/homepage.ts new file mode 100644 index 0000000000..2b176c0a0d --- /dev/null +++ b/src/themes/default/store/homepage.ts @@ -0,0 +1,15 @@ +// import { createModule } from '@vue-storefront/core/lib/module' + +// const KEY = 'homepage' +export const store = { + namespaced: true, + state: { + new_collection: [] + } +} + + +// export const Homepage = createModule({ +// key: KEY, +// store: { modules: [{ key: KEY, module: store }] } +// }) diff --git a/src/themes/default/store/homepage/index.ts b/src/themes/default/store/homepage/index.ts deleted file mode 100644 index e4a99c70c9..0000000000 --- a/src/themes/default/store/homepage/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { createModule } from '@vue-storefront/core/lib/module' - -const KEY = 'homepage' -const store = { - namespaced: true, - state: { - new_collection: [] - } -} -export const Homepage = createModule({ - key: KEY, - store: { modules: [{ key: KEY, module: store }] } -}) diff --git a/src/themes/default/store/index.ts b/src/themes/default/store/index.ts deleted file mode 100644 index c1f3e520f0..0000000000 --- a/src/themes/default/store/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { VueStorefrontModule } from '@vue-storefront/core/lib/module'; -import { Homepage } from './homepage' -import { PromotedOffers } from './promoted-offers' -import { Ui } from './ui-store' -import { Claims } from './claims'; - -export const registerModules: VueStorefrontModule[] = [ - Homepage, - PromotedOffers, - Ui, - Claims -]; diff --git a/src/themes/default/store/promoted-offers/index.ts b/src/themes/default/store/promoted-offers.ts similarity index 79% rename from src/themes/default/store/promoted-offers/index.ts rename to src/themes/default/store/promoted-offers.ts index 1e43b98f7d..a07c453f4c 100644 --- a/src/themes/default/store/promoted-offers/index.ts +++ b/src/themes/default/store/promoted-offers.ts @@ -1,10 +1,15 @@ -import { Module } from 'vuex' -import { createModule } from '@vue-storefront/core/lib/module' import { Logger } from '@vue-storefront/core/lib/logger' -import RootState from '@vue-storefront/core/types/RootState' -import PromotedOffersState from './types/PromotedOffersState' -const module: Module = { +export default interface PromotedOffersState { + banners: { + mainBanners: any[], + smallBanners: any[], + productBanners: any[] + }, + headImage: Record +} + +export const store = { namespaced: true, state: { banners: { @@ -49,9 +54,3 @@ const module: Module = { } } } - -const KEY = 'promoted' -export const PromotedOffers = createModule({ - key: KEY, - store: { modules: [{ key: KEY, module }] } -}) diff --git a/src/themes/default/store/promoted-offers/types/PromotedOffersState.ts b/src/themes/default/store/promoted-offers/types/PromotedOffersState.ts deleted file mode 100644 index ed2d5664aa..0000000000 --- a/src/themes/default/store/promoted-offers/types/PromotedOffersState.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default interface PromotedOffersState { - banners: { - mainBanners: any[], - smallBanners: any[], - productBanners: any[] - }, - headImage: Record -} diff --git a/src/themes/default/store/ui-store/index.ts b/src/themes/default/store/ui.ts similarity index 89% rename from src/themes/default/store/ui-store/index.ts rename to src/themes/default/store/ui.ts index eaa0350612..96c1be28a4 100644 --- a/src/themes/default/store/ui-store/index.ts +++ b/src/themes/default/store/ui.ts @@ -1,7 +1,4 @@ -import { createModule } from '@vue-storefront/core/lib/module' - -const KEY = 'ui' -const store = { +export const store = { namespaced: true, state: { sidebar: false, @@ -68,8 +65,3 @@ const store = { } } } - -export const Ui = createModule({ - key: KEY, - store: { modules: [{ key: KEY, module: store }] } -}) From df59b6b14b5470d744faa2c9ed4b5d1652c8ff63 Mon Sep 17 00:00:00 2001 From: michasik Date: Mon, 8 Jul 2019 16:11:05 +0200 Subject: [PATCH 12/18] Removes commented code --- src/modules/index.ts | 10 ---------- src/themes/default/store/homepage.ts | 9 --------- 2 files changed, 19 deletions(-) diff --git a/src/modules/index.ts b/src/modules/index.ts index 8ba2222ccd..6f80a6c6ab 100644 --- a/src/modules/index.ts +++ b/src/modules/index.ts @@ -12,10 +12,6 @@ import { Newsletter } from '@vue-storefront/core/modules/newsletter' import { Notification } from '@vue-storefront/core/modules/notification' import { RecentlyViewed } from '@vue-storefront/core/modules/recently-viewed' import { Url } from '@vue-storefront/core/modules/url' -// import { Homepage } from '../themes/default/store/homepage' -// import { Claims } from '../themes/default/modules/claims' -// import { PromotedOffers } from './promoted-offers' -// import { Ui } from '../themes/default/store/ui-store' // import { GoogleAnalytics } from './google-analytics'; // import { Hotjar } from './hotjar'; import { googleTagManager } from './google-tag-manager'; @@ -24,7 +20,6 @@ import { PaymentBackendMethods } from './payment-backend-methods'; import { PaymentCashOnDelivery } from './payment-cash-on-delivery'; import { RawOutputExample } from './raw-output-example' import { InstantCheckout } from './instant-checkout' -// import { OrderHistory } from './order-history' // import { Example } from './module-template' @@ -63,11 +58,7 @@ export const registerModules: VueStorefrontModule[] = [ Wishlist, Newsletter, Notification, - // Ui, RecentlyViewed, - // Homepage, - // Claims, - // PromotedOffers, googleTagManager, // GoogleAnalytics, // Hotjar, @@ -78,6 +69,5 @@ export const registerModules: VueStorefrontModule[] = [ InstantCheckout, Url, CatalogNext - // OrderHistory // Example ] diff --git a/src/themes/default/store/homepage.ts b/src/themes/default/store/homepage.ts index 2b176c0a0d..2e716aa3c1 100644 --- a/src/themes/default/store/homepage.ts +++ b/src/themes/default/store/homepage.ts @@ -1,15 +1,6 @@ -// import { createModule } from '@vue-storefront/core/lib/module' - -// const KEY = 'homepage' export const store = { namespaced: true, state: { new_collection: [] } } - - -// export const Homepage = createModule({ -// key: KEY, -// store: { modules: [{ key: KEY, module: store }] } -// }) From 1705f041ac1a081c529af9759c30621c7383f2e8 Mon Sep 17 00:00:00 2001 From: michasik Date: Mon, 8 Jul 2019 16:42:00 +0200 Subject: [PATCH 13/18] Updates upgrade-notes and updates paths --- docs/guide/upgrade-notes/README.md | 15 +++++++++------ src/themes/default/index.js | 8 ++++---- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/guide/upgrade-notes/README.md b/docs/guide/upgrade-notes/README.md index f0077d279c..7c1cdd7d96 100644 --- a/docs/guide/upgrade-notes/README.md +++ b/docs/guide/upgrade-notes/README.md @@ -1,6 +1,9 @@ # Upgrade notes We're trying to keep the upgrade process as easy as possible. Unfortunately, sometimes manual code changes are required. Before pulling out the latest version, please take a look at the upgrade notes below: +## 1.10 -> 1.11 +- `UserOrder` component has been renamed to `UserOrderHistory` and moved from `src/modules/order-history/components/UserOrders` to `@vue-storefront/core/modules/order/components/UserOrdersHistory` +- `claims`, `promoted-offers`, `homepage` and `ui` modules have been moved from `@vue-storefront/core/modules/` to `theme/store/` and reduced to store only ## 1.9 -> 1.10 - Event `application-after-init` is now emitted by event bus instead of root Vue instance (app), so you need to listen to `Vue.prototype.$bus` (`Vue.prototype.$bus.$on()`) now @@ -10,7 +13,7 @@ We're trying to keep the upgrade process as easy as possible. Unfortunately, som - The `cart/addItem` is no longer displaying the error messages - please use the `diffLog.clientNorifications` to update the UI instead (take a look at the `AddToCart.ts` for a reference) ## 1.8 -> 1.9 -- The Url Dispatcher feature added for friendly URLs. When `config.seo.useUrlDispatcher` set to true the `product.url_path` and `category.url_path` fields are used as absolute URL addresses (no `/c` and `/p` prefixes anymore). Check the latest `mage2vuestorefront` snapshot and **reimport Your products** to properly set `url_path` fields +- The Url Dispatcher feature added for friendly URLs. When `config.seo.useUrlDispatcher` set to true the `product.url_path` and `category.url_path` fields are used as absolute URL addresses (no `/c` and `/p` prefixes anymore). Check the latest `mage2vuestorefront` snapshot and **reimport Your products** to properly set `url_path` fields - `cart.multisiteCommonCart` config property changed to `storeViews.commonCache` - Way of creating VS Modules was changed to use factory method instead of explict object creation. Even though the feature is backward compatible we highly encourage all developers to refactor their modules to use new syntax. @@ -18,8 +21,8 @@ The process of creating a new module with the factory method looks like the foll ````js import { createModule } from '@vue-storefront/core/lib/module' -const moduleConfig: VueStorefrontModuleConfig = { - // VS module config +const moduleConfig: VueStorefrontModuleConfig = { + // VS module config } const module = createModule(moduleConfig) @@ -31,7 +34,7 @@ const module = createModule(moduleConfig) - Added validation for UTF8 alpha and alphanumeric characters in most checkout fields - Update your local.json config and set default `api.url` path, without it you may have problems with elasticsearch queries. -### Troubleshooting +### Troubleshooting - In case of CORS problem after upgrade check your elasticsearch url in config file. Best practice for that change can be found [here](https://github.com/DivanteLtd/vue-storefront/commit/77fc9c2765068303879c75ef9ed4a4b98f6763b6) - In case of app crashing, especially when opening `vue devtools` in browser, try setting `storeViews.commonCache` to `false`. @@ -250,7 +253,7 @@ We added Reviews support, however, Magento 2 is still lacking Reviews support in - **removeCoupon** -> **clearCoupon** - removing coupon by dispatch removeCoupon API method and toggle coupon form - **applyCoupon** -> **setCoupon** - submit coupon form by dispatch applyCoupon API method - **enterCoupon** - was removed, because @keyup="enterCoupon" we changed to @keyup.enter="setCoupon" - + 3. We moved $emit with notification about appliedCoupon and removedCoupon from Vuex store to the default theme. Now applyCoupon and removeCoupon returns promise, which you can handle by yourself. 4. We moved VueOfflineMixin and onEscapePress mixins to the theme component. The core component is clean from UI stuff now. @@ -370,7 +373,7 @@ export default { ``` -4. We've added Multistore support. It shouldn't imply any breaking changes to the existing themes / extensions (by default it's just disabled). +4. We've added Multistore support. It shouldn't imply any breaking changes to the existing themes / extensions (by default it's just disabled). ## 1.0RC-2 -> 1.0RC-3 ([release notes](https://github.com/DivanteLtd/vue-storefront/releases/tag/v1.0.0-rc.3)) diff --git a/src/themes/default/index.js b/src/themes/default/index.js index 535d45eecd..79569a894c 100644 --- a/src/themes/default/index.js +++ b/src/themes/default/index.js @@ -8,10 +8,10 @@ import { RouterManager } from '@vue-storefront/core/lib/router-manager' import { once } from '@vue-storefront/core/helpers' import { initCacheStorage } from '@vue-storefront/core/helpers/initCacheStorage'; -import { store as claimsStore } from './store/claims' -import { store as homeStore } from './store/homepage' -import { store as uiStore } from './store/ui' -import { store as promotedStore } from './store/promoted-offers' +import { store as claimsStore } from 'theme/store/claims' +import { store as homeStore } from 'theme/store/homepage' +import { store as uiStore } from 'theme/store/ui' +import { store as promotedStore } from 'theme/store/promoted-offers' once('__VUE_EXTEND_DROPPOINT_VPB__', () => { Vue.use(VueProgressBar) From 44ae5b3074b0c90840c794219b34f87d494fcd88 Mon Sep 17 00:00:00 2001 From: michasik Date: Mon, 8 Jul 2019 16:48:17 +0200 Subject: [PATCH 14/18] Adds alias for userOrders component --- core/build/webpack.base.config.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/build/webpack.base.config.ts b/core/build/webpack.base.config.ts index aba21511a6..bdb5cc89cd 100644 --- a/core/build/webpack.base.config.ts +++ b/core/build/webpack.base.config.ts @@ -117,7 +117,8 @@ export default { 'theme/resource': themeResources, // Backward compatible - '@vue-storefront/core/store/lib/multistore': path.resolve(__dirname, '../lib/multistore.ts') + '@vue-storefront/core/store/lib/multistore': path.resolve(__dirname, '../lib/multistore.ts'), + 'src/modules/order-history/components/UserOrders': path.resolve(__dirname, '../../core/modules/order/components/UserOrdersHistory') } }, module: { From 0583552ff2d3a3c45ddc23a60c18e3ee26ab1909 Mon Sep 17 00:00:00 2001 From: michasik Date: Mon, 8 Jul 2019 17:01:47 +0200 Subject: [PATCH 15/18] Updates upgrade notes --- docs/guide/upgrade-notes/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/guide/upgrade-notes/README.md b/docs/guide/upgrade-notes/README.md index 7c1cdd7d96..bd15df4ae9 100644 --- a/docs/guide/upgrade-notes/README.md +++ b/docs/guide/upgrade-notes/README.md @@ -4,6 +4,7 @@ We're trying to keep the upgrade process as easy as possible. Unfortunately, som ## 1.10 -> 1.11 - `UserOrder` component has been renamed to `UserOrderHistory` and moved from `src/modules/order-history/components/UserOrders` to `@vue-storefront/core/modules/order/components/UserOrdersHistory` - `claims`, `promoted-offers`, `homepage` and `ui` modules have been moved from `@vue-storefront/core/modules/` to `theme/store/` and reduced to store only +- `WebShare` moved from `@vue-storefront/core/modules/social-share/components/WebShare.vue` to `@vue-storefront\src\themes\default\components\theme\WebShare.vue` ## 1.9 -> 1.10 - Event `application-after-init` is now emitted by event bus instead of root Vue instance (app), so you need to listen to `Vue.prototype.$bus` (`Vue.prototype.$bus.$on()`) now From 0920447e4e0c378dc656888721855eb16b5efbd7 Mon Sep 17 00:00:00 2001 From: michasik Date: Tue, 9 Jul 2019 11:58:54 +0200 Subject: [PATCH 16/18] Updates upgrade-notes --- docs/guide/upgrade-notes/README.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/docs/guide/upgrade-notes/README.md b/docs/guide/upgrade-notes/README.md index bd15df4ae9..31ae19c290 100644 --- a/docs/guide/upgrade-notes/README.md +++ b/docs/guide/upgrade-notes/README.md @@ -2,9 +2,31 @@ We're trying to keep the upgrade process as easy as possible. Unfortunately, sometimes manual code changes are required. Before pulling out the latest version, please take a look at the upgrade notes below: ## 1.10 -> 1.11 -- `UserOrder` component has been renamed to `UserOrderHistory` and moved from `src/modules/order-history/components/UserOrders` to `@vue-storefront/core/modules/order/components/UserOrdersHistory` -- `claims`, `promoted-offers`, `homepage` and `ui` modules have been moved from `@vue-storefront/core/modules/` to `theme/store/` and reduced to store only -- `WebShare` moved from `@vue-storefront/core/modules/social-share/components/WebShare.vue` to `@vue-storefront\src\themes\default\components\theme\WebShare.vue` +- `UserOrder` component has been renamed to `UserOrderHistory` and moved from `src/modules/order-history/components/UserOrders` to `@vue-storefront/core/modules/order/components/UserOrdersHistory`. This component was used in `MyOrders` component found here: `src/themes/default/components/core/blocks/MyAccount/MyOrders.vue`. In this file the `import` has to be updated as well as `mixin name`. +- `claims`, `promoted-offers`, `homepage` adn `ui` modules have been moved from `@vue-storefront/src/modules` to `src/themes/default/store/` and reduced to stores only.
+Delete those folders:
+ -- `src/modules/claims`
+ -- `src/modules/promoted-offers`
+ -- `src/modules/homepage`
+ -- `src/modules/ui-store`
+Copy folder `theme/store/` from `theme default`.
+Register the stores copied in previous step in `src/themes/default/index.js`. To do that, import them along with `initCacheStorage` method, used to replace `claims beforeRegistration hook`. +```js +import { initCacheStorage } from '@vue-storefront/core/helpers/initCacheStorage'; +import { store as claimsStore } from 'theme/store/claims' +import { store as homeStore } from 'theme/store/homepage' +import { store as uiStore } from 'theme/store/ui' +import { store as promotedStore } from 'theme/store/promoted-offers' +``` +Next, inside `initTheme` method use `store.registerModule` method to register the stores. +```js +Vue.prototype.$db.claimsCollection = initCacheStorage('claims'); +store.registerModule('claims', claimsStore); +store.registerModule('homepage', homeStore); +store.registerModule('ui', uiStore); +store.registerModule('promoted', promotedStore); +``` +- `WebShare` moved from `@vue-storefront/core/modules/social-share/components/WebShare.vue` to `@vue-storefront/src/themes/default/components/theme/WebShare.vue`. This component was used in `Product` component found here: `src/themes/default/pages/Product.vue`. In this file the `import` path has to be updated. ## 1.9 -> 1.10 - Event `application-after-init` is now emitted by event bus instead of root Vue instance (app), so you need to listen to `Vue.prototype.$bus` (`Vue.prototype.$bus.$on()`) now From 04d937cee27b821edebf0fb04d11a36268b63e74 Mon Sep 17 00:00:00 2001 From: michasik Date: Tue, 9 Jul 2019 12:55:08 +0200 Subject: [PATCH 17/18] Adds alias for WebShare component. Updates upgradenotes and simplifies import. --- core/build/webpack.base.config.ts | 3 ++- docs/guide/upgrade-notes/README.md | 2 +- .../default/components/core/blocks/MyAccount/MyOrders.vue | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/build/webpack.base.config.ts b/core/build/webpack.base.config.ts index bdb5cc89cd..72b7f6a2cf 100644 --- a/core/build/webpack.base.config.ts +++ b/core/build/webpack.base.config.ts @@ -118,7 +118,8 @@ export default { // Backward compatible '@vue-storefront/core/store/lib/multistore': path.resolve(__dirname, '../lib/multistore.ts'), - 'src/modules/order-history/components/UserOrders': path.resolve(__dirname, '../../core/modules/order/components/UserOrdersHistory') + 'src/modules/order-history/components/UserOrders': path.resolve(__dirname, '../../core/modules/order/components/UserOrdersHistory'), + '@vue-storefront/core/modules/social-share/components/WebShare': path.resolve(__dirname, '../../src/themes/default/components/theme/WebShare.vue') } }, module: { diff --git a/docs/guide/upgrade-notes/README.md b/docs/guide/upgrade-notes/README.md index 31ae19c290..da2d94998d 100644 --- a/docs/guide/upgrade-notes/README.md +++ b/docs/guide/upgrade-notes/README.md @@ -2,7 +2,7 @@ We're trying to keep the upgrade process as easy as possible. Unfortunately, sometimes manual code changes are required. Before pulling out the latest version, please take a look at the upgrade notes below: ## 1.10 -> 1.11 -- `UserOrder` component has been renamed to `UserOrderHistory` and moved from `src/modules/order-history/components/UserOrders` to `@vue-storefront/core/modules/order/components/UserOrdersHistory`. This component was used in `MyOrders` component found here: `src/themes/default/components/core/blocks/MyAccount/MyOrders.vue`. In this file the `import` has to be updated as well as `mixin name`. +- `UserOrder` component has been renamed to `UserOrderHistory` and moved from `src/modules/order-history/components/UserOrders` to `@vue-storefront/core/modules/order/components/UserOrdersHistory`. This component was used in `MyOrders` component found here: `src/themes/default/components/core/blocks/MyAccount/MyOrders.vue`. In this file the `import` path has to be updated. - `claims`, `promoted-offers`, `homepage` adn `ui` modules have been moved from `@vue-storefront/src/modules` to `src/themes/default/store/` and reduced to stores only.
Delete those folders:
-- `src/modules/claims`
diff --git a/src/themes/default/components/core/blocks/MyAccount/MyOrders.vue b/src/themes/default/components/core/blocks/MyAccount/MyOrders.vue index 2f9ea70236..8d4f0b1cee 100644 --- a/src/themes/default/components/core/blocks/MyAccount/MyOrders.vue +++ b/src/themes/default/components/core/blocks/MyAccount/MyOrders.vue @@ -80,10 +80,10 @@ From 4993372461327c2c1c38f24f420b60e6e25a3cdd Mon Sep 17 00:00:00 2001 From: michasik Date: Tue, 9 Jul 2019 15:20:47 +0200 Subject: [PATCH 18/18] Changes the names of the stores --- src/themes/default/index.js | 10 +++++----- src/themes/default/store/claims.ts | 2 +- src/themes/default/store/homepage.ts | 2 +- src/themes/default/store/promoted-offers.ts | 2 +- src/themes/default/store/ui.ts | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/themes/default/index.js b/src/themes/default/index.js index 79569a894c..d5435b50f1 100644 --- a/src/themes/default/index.js +++ b/src/themes/default/index.js @@ -8,10 +8,10 @@ import { RouterManager } from '@vue-storefront/core/lib/router-manager' import { once } from '@vue-storefront/core/helpers' import { initCacheStorage } from '@vue-storefront/core/helpers/initCacheStorage'; -import { store as claimsStore } from 'theme/store/claims' -import { store as homeStore } from 'theme/store/homepage' -import { store as uiStore } from 'theme/store/ui' -import { store as promotedStore } from 'theme/store/promoted-offers' +import { claimsStore } from 'theme/store/claims' +import { homepageStore } from 'theme/store/homepage' +import { uiStore } from 'theme/store/ui' +import { promotedStore } from 'theme/store/promoted-offers' once('__VUE_EXTEND_DROPPOINT_VPB__', () => { Vue.use(VueProgressBar) @@ -28,7 +28,7 @@ function initTheme (app, router, store, config, ssrContext) { Vue.prototype.$db.claimsCollection = initCacheStorage('claims'); store.registerModule('claims', claimsStore); - store.registerModule('homepage', homeStore); + store.registerModule('homepage', homepageStore); store.registerModule('ui', uiStore); store.registerModule('promoted', promotedStore); } diff --git a/src/themes/default/store/claims.ts b/src/themes/default/store/claims.ts index dbc048f08c..902de94a5c 100644 --- a/src/themes/default/store/claims.ts +++ b/src/themes/default/store/claims.ts @@ -1,7 +1,7 @@ import Vue from 'vue' import { Logger } from '@vue-storefront/core/lib/logger' -export const store = { +export const claimsStore = { namespaced: true, actions: { set (context, { claimCode, value, description }) { diff --git a/src/themes/default/store/homepage.ts b/src/themes/default/store/homepage.ts index 2e716aa3c1..a74a5520a2 100644 --- a/src/themes/default/store/homepage.ts +++ b/src/themes/default/store/homepage.ts @@ -1,4 +1,4 @@ -export const store = { +export const homepageStore = { namespaced: true, state: { new_collection: [] diff --git a/src/themes/default/store/promoted-offers.ts b/src/themes/default/store/promoted-offers.ts index a07c453f4c..17c875c000 100644 --- a/src/themes/default/store/promoted-offers.ts +++ b/src/themes/default/store/promoted-offers.ts @@ -9,7 +9,7 @@ export default interface PromotedOffersState { headImage: Record } -export const store = { +export const promotedStore = { namespaced: true, state: { banners: { diff --git a/src/themes/default/store/ui.ts b/src/themes/default/store/ui.ts index 96c1be28a4..e1a6f8c291 100644 --- a/src/themes/default/store/ui.ts +++ b/src/themes/default/store/ui.ts @@ -1,4 +1,4 @@ -export const store = { +export const uiStore = { namespaced: true, state: { sidebar: false,