Skip to content

Commit d0024c7

Browse files
committed
chore(M2-261): Refactor getters from composables to theme
1 parent ffaa427 commit d0024c7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1064
-758
lines changed

packages/composables/src/composables/useAddresses/index.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ type RemoveAddressInput = {
2626
} & CustomQueryParams;
2727

2828
const factoryParams: UseAddressesParams<CustomerAddress,
29-
CustomQueryParams,
30-
SaveAddressInput,
31-
UpdateAddressInput,
32-
RemoveAddressInput> = {
33-
load: async (context: Context, params?: CustomQueryParams) => {
29+
CustomQueryParams,
30+
SaveAddressInput,
31+
UpdateAddressInput,
32+
RemoveAddressInput> = {
33+
load: async (context: Context) => {
3434
Logger.debug('[Magento] load user addresses');
3535

3636
const { data } = await context.$magento.api.getCustomerAddresses();

packages/composables/src/index.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { track } from '@vue-storefront/core';
33

44
track('VSFMagento');
55

6-
export * from './getters';
76
export * from './getVueContext';
87

98
export { default as useAddresses } from './composables/useAddresses';
@@ -39,3 +38,13 @@ export { default as useUserOrder } from './composables/useUserOrder';
3938
export { default as useUserShipping } from './composables/useUserShipping';
4039
export { default as useWishlist } from './composables/useWishlist';
4140
export * from './dataTypes';
41+
export * from './types';
42+
export * from './types/getters';
43+
export * from './helpers/userAddressManipulator';
44+
export * from './helpers/htmlDecoder';
45+
export * from './helpers/buildCategoryTree';
46+
export {
47+
Countries, Discount,
48+
SelectedShippingMethod, ConfigurableCartItem, ProductInterface, ProductReviewRatingMetadata,
49+
ProductReviews, WishlistQuery,
50+
} from '@vue-storefront/magento-api';

packages/theme/components/AppHeader.vue

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22
<div>
33
<SfHeader
44
class="sf-header--has-mobile-search"
5-
:class="{'header-on-top': isSearchOpen}"
5+
:class="{ 'header-on-top': isSearchOpen }"
66
>
77
<!-- TODO: add mobile view buttons after SFUI team PR -->
88
<template #logo>
99
<HeaderLogo />
1010
</template>
11-
<template
12-
#navigation
13-
>
11+
<template #navigation>
1412
<HeaderNavigationItem
1513
v-for="(category, index) in categoryTree"
1614
:key="index"
@@ -26,9 +24,7 @@
2624
<StoreSwitcher class="smartphone-only" />
2725
</div>
2826
</template>
29-
<template
30-
#header-icons="{activeIcon}"
31-
>
27+
<template #header-icons="{ activeIcon }">
3228
<div class="sf-header__icons">
3329
<SfButton
3430
v-e2e="'app-header-account'"
@@ -114,13 +110,10 @@
114110

115111
<script>
116112
import {
117-
SfOverlay,
118-
SfHeader,
119-
SfButton,
120-
SfBadge,
113+
SfOverlay, SfHeader, SfButton, SfBadge,
121114
} from '@storefront-ui/vue';
122115
123-
import { categoryGetters } from '@vue-storefront/magento';
116+
import { categoryGetters } from '~/getters';
124117
import {
125118
computed,
126119
ref,
@@ -157,7 +150,9 @@ export default defineComponent({
157150
SfButton,
158151
SfBadge,
159152
SearchBar: () => import('~/components/Header/SearchBar/SearchBar.vue'),
160-
SearchResults: () => import(/* webpackPrefetch: true */ '~/components/Header/SearchBar/SearchResults.vue'),
153+
SearchResults: () => import(
154+
/* webpackPrefetch: true */ '~/components/Header/SearchBar/SearchResults.vue'
155+
),
161156
},
162157
setup() {
163158
const router = useRouter();
@@ -168,10 +163,7 @@ export default defineComponent({
168163
const { loadTotalQty: loadCartTotalQty, cart } = useCart();
169164
const { loadItemsCount: loadWishlistItemsCount, wishlist } = useWishlist();
170165
171-
const {
172-
categories: categoryList,
173-
search: categoriesListSearch,
174-
} = useCategory('AppHeader:CategoryList');
166+
const { categories: categoryList, search: categoriesListSearch } = useCategory('AppHeader:CategoryList');
175167
176168
const isSearchOpen = ref(false);
177169
const result = ref(null);
@@ -190,7 +182,9 @@ export default defineComponent({
190182
191183
useFetch(async () => {
192184
await categoriesListSearch({ pageSize: 20 });
193-
categoryTree.value = categoryGetters.getCategoryTree(categoryList.value?.[0])?.items.filter((c) => c.count > 0);
185+
categoryTree.value = categoryGetters
186+
.getCategoryTree(categoryList.value?.[0])
187+
?.items.filter((c) => c.count > 0);
194188
});
195189
196190
onMounted(() => {

packages/theme/components/CartSidebar.vue

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,9 @@
120120
:disabled="loading"
121121
:qty="cartGetters.getItemQty(product)"
122122
class="sf-collected-product__quantity-selector"
123-
@input="delayedUpdateItemQty({ product, quantity: $event })"
123+
@input="
124+
delayedUpdateItemQty({ product, quantity: $event })
125+
"
124126
/>
125127
</div>
126128
<SfBadge
@@ -187,18 +189,13 @@
187189
<div v-if="totalItems">
188190
<SfProperty
189191
:name="$t('Subtotal price')"
190-
class="
191-
sf-property--full-width sf-property--large
192-
my-cart__total-price
193-
"
192+
class="sf-property--full-width sf-property--large my-cart__total-price"
194193
>
195194
<template #value>
196195
<SfPrice
197196
:regular="$fc(totals.subtotal)"
198197
:special="
199-
totals.subtotal <= totals.special
200-
? ''
201-
: $fc(totals.special)
198+
totals.subtotal <= totals.special ? '' : $fc(totals.special)
202199
"
203200
/>
204201
</template>
@@ -246,11 +243,10 @@ import {
246243
defineComponent,
247244
ref,
248245
useRouter,
249-
useContext, onMounted,
246+
useContext,
247+
onMounted,
250248
} from '@nuxtjs/composition-api';
251-
import {
252-
cartGetters,
253-
} from '@vue-storefront/magento';
249+
import { cartGetters } from '~/getters';
254250
import _debounce from 'lodash.debounce';
255251
import {
256252
useCart,
@@ -260,8 +256,8 @@ import {
260256
useExternalCheckout,
261257
} from '~/composables';
262258
import stockStatusEnum from '~/enums/stockStatusEnum';
263-
import CouponCode from './CouponCode.vue';
264259
import SvgImage from '~/components/General/SvgImage.vue';
260+
import CouponCode from './CouponCode.vue';
265261
266262
export default defineComponent({
267263
name: 'CartSidebar',
@@ -298,7 +294,14 @@ export default defineComponent({
298294
const products = computed(() => cartGetters
299295
.getItems(cart.value)
300296
.filter(Boolean)
301-
.map((item) => ({ ...item, product: { ...item.product, ...item.configured_variant, original_sku: item.product.sku } })));
297+
.map((item) => ({
298+
...item,
299+
product: {
300+
...item.product,
301+
...item.configured_variant,
302+
original_sku: item.product.sku,
303+
},
304+
})));
302305
const totals = computed(() => cartGetters.getTotals(cart.value));
303306
const totalItems = computed(() => cartGetters.getTotalItems(cart.value));
304307
const getAttributes = (product) => product.configurable_options || [];
@@ -313,7 +316,9 @@ export default defineComponent({
313316
});
314317
315318
const goToCheckout = async () => {
316-
const redirectUrl = await initializeCheckout({ baseUrl: '/checkout/user-account' });
319+
const redirectUrl = await initializeCheckout({
320+
baseUrl: '/checkout/user-account',
321+
});
317322
await router.push(`${app.localePath(redirectUrl)}`);
318323
};
319324
@@ -341,7 +346,10 @@ export default defineComponent({
341346
title: 'Product removed',
342347
});
343348
};
344-
const delayedUpdateItemQty = _debounce((params) => updateItemQty(params), 1000);
349+
const delayedUpdateItemQty = _debounce(
350+
(params) => updateItemQty(params),
351+
1000,
352+
);
345353
const isInStock = (product) => cartGetters.getStockStatus(product) === stockStatusEnum.inStock;
346354
347355
return {

packages/theme/components/Checkout/CartPreview.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
<script>
5454
import { SfHeading, SfProperty, SfCharacteristic } from '@storefront-ui/vue';
5555
import { computed, ref, defineComponent } from '@nuxtjs/composition-api';
56-
import { cartGetters } from '@vue-storefront/magento';
56+
import { cartGetters } from '~/getters';
5757
import { useCart } from '~/composables';
5858
import getShippingMethodPrice from '~/helpers/checkout/getShippingMethodPrice';
5959
import CouponCode from '../CouponCode.vue';

packages/theme/components/Checkout/UserBillingAddresses.vue

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,10 @@
2626
</template>
2727

2828
<script>
29-
import {
30-
SfCheckbox,
31-
SfAddressPicker,
32-
} from '@storefront-ui/vue';
33-
import {
34-
useUserBilling,
35-
userBillingGetters,
36-
} from '@vue-storefront/magento';
37-
import {
38-
defineComponent,
39-
} from '@nuxtjs/composition-api';
29+
import { SfCheckbox, SfAddressPicker } from '@storefront-ui/vue';
30+
import { useUserBilling } from '@vue-storefront/magento';
31+
import { userBillingGetters } from '~/getters';
32+
import { defineComponent } from '@nuxtjs/composition-api';
4033
import UserAddressDetails from '~/components/UserAddressDetails.vue';
4134
4235
export default defineComponent({
@@ -61,7 +54,10 @@ export default defineComponent({
6154
const { billing: userBilling } = useUserBilling();
6255
6356
const setCurrentAddress = (addressId) => {
64-
const selectedAddress = userBillingGetters.getAddresses(userBilling.value, { id: Number.parseInt(addressId, 10) });
57+
const selectedAddress = userBillingGetters.getAddresses(
58+
userBilling.value,
59+
{ id: Number.parseInt(addressId, 10) },
60+
);
6561
if (!selectedAddress || selectedAddress.length === 0) {
6662
return;
6763
}
@@ -103,7 +99,8 @@ export default defineComponent({
10399
}
104100
}
105101
106-
.sf-divider, .form__action-button--margin-bottom {
102+
.sf-divider,
103+
.form__action-button--margin-bottom {
107104
margin-bottom: var(--spacer-xl);
108105
}
109106
</style>

packages/theme/components/Checkout/UserShippingAddresses.vue

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@
1111
class="shipping__address"
1212
:name="`${userShippingGetters.getId(shippingAddress)}`"
1313
>
14-
<UserAddressDetails
15-
:address="shippingAddress"
16-
/>
14+
<UserAddressDetails :address="shippingAddress" />
1715
</SfAddress>
1816
</SfAddressPicker>
1917
<SfCheckbox
@@ -29,18 +27,10 @@
2927
</template>
3028

3129
<script>
32-
import {
33-
SfCheckbox,
34-
SfAddressPicker,
35-
} from '@storefront-ui/vue';
36-
import {
37-
useUserShipping,
38-
userShippingGetters,
39-
} from '@vue-storefront/magento';
40-
import {
41-
computed,
42-
defineComponent,
43-
} from '@nuxtjs/composition-api';
30+
import { SfCheckbox, SfAddressPicker } from '@storefront-ui/vue';
31+
import { useUserShipping } from '@vue-storefront/magento';
32+
import { userShippingGetters } from '~/getters';
33+
import { computed, defineComponent } from '@nuxtjs/composition-api';
4434
import UserAddressDetails from '~/components/UserAddressDetails.vue';
4535
4636
export default defineComponent({
@@ -77,8 +67,7 @@ export default defineComponent({
7767
emit('setCurrentAddress', selectedAddress[0]);
7868
};
7969
80-
const shippingAddresses = computed(() => userShippingGetters
81-
.getAddresses(userShipping.value));
70+
const shippingAddresses = computed(() => userShippingGetters.getAddresses(userShipping.value));
8271
8372
return {
8473
setCurrentAddress,
@@ -113,7 +102,8 @@ export default defineComponent({
113102
}
114103
}
115104
116-
.sf-divider, .form__action-button--margin-bottom {
105+
.sf-divider,
106+
.form__action-button--margin-bottom {
117107
margin-bottom: var(--spacer-xl);
118108
}
119109
</style>

packages/theme/components/Checkout/VsfShippingProvider.vue

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@
3737
:label="method.method_title"
3838
:value="method.method_code"
3939
:selected="
40-
selectedShippingMethod &&
41-
selectedShippingMethod.method_code
40+
selectedShippingMethod && selectedShippingMethod.method_code
4241
"
4342
name="shippingMethod"
4443
:description="method.carrier_title"
@@ -84,9 +83,9 @@
8483
<script>
8584
import {
8685
useShippingProvider,
87-
cartGetters,
8886
useGetShippingMethods,
8987
} from '@vue-storefront/magento';
88+
import { cartGetters } from '~/getters';
9089
import {
9190
SfHeading, SfButton, SfRadio, SfLoader,
9291
} from '@storefront-ui/vue';

packages/theme/components/CouponCode.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
<script>
2929
import { SfButton, SfInput } from '@storefront-ui/vue';
30-
import { cartGetters } from '@vue-storefront/magento';
30+
import { cartGetters } from '~/getters';
3131
import {
3232
computed,
3333
onMounted,

0 commit comments

Comments
 (0)