@riosst100/pwa-marketplace 1.2.6 → 1.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/dependabot.yml +28 -28
- package/package.json +18 -18
- package/src/Utilities/graphQL.js +76 -76
- package/src/componentOverrideMapping.js +17 -16
- package/src/components/BecomeSeller/becomeSeller.js +335 -335
- package/src/components/BecomeSeller/becomeSeller.module.css +46 -46
- package/src/components/BecomeSellerLink/becomeSellerLink.js +52 -52
- package/src/components/BecomeSellerLink/becomeSellerLink.module.css +12 -12
- package/src/components/BecomeSellerPage/becomeSellerPage.js +45 -45
- package/src/components/BecomeSellerPage/becomeSellerPage.module.css +21 -21
- package/src/components/Filter/index.js +53 -53
- package/src/components/Header/becomeSellerLink.js +28 -28
- package/src/components/Header/becomeSellerLink.module.css +12 -12
- package/src/components/Header/websiteSwitcher.js +109 -109
- package/src/components/Pagination/index.js +49 -40
- package/src/components/PhoneTextInput/phoneTextInput.module.css +21 -21
- package/src/components/ProductItem/index.js +50 -50
- package/src/components/Search/index.js +16 -16
- package/src/components/Seller/index.js +1 -1
- package/src/components/Seller/seller.js +249 -42
- package/src/components/SellerAccountPage/sellerAccountPage.js +110 -110
- package/src/components/SellerAccountPage/sellerAccountPage.module.css +55 -55
- package/src/components/SellerCountry/sellerCountry.gql.js +11 -11
- package/src/components/SellerInformation/index.js +1 -1
- package/src/components/SellerInformation/sellerInformation.js +90 -84
- package/src/components/SellerLocation/index.js +1 -1
- package/src/components/SellerLocation/sellerLocation.js +19 -18
- package/src/components/SellerLocation/sellerLocationItem.js +27 -25
- package/src/components/SellerPage/sellerPage.js +9 -9
- package/src/components/SellerProducts/sellerProducts.js +47 -218
- package/src/components/SellerReview/index.js +1 -1
- package/src/components/SellerReview/sellerReview.js +143 -143
- package/src/components/SellerReviewItem/sellerReviewItem.js +60 -60
- package/src/components/SellerVerification/sellerVerification.js +198 -198
- package/src/components/SellerVerification/sellerVerification.module.css +47 -47
- package/src/components/SellerVerificationPage/sellerVerificationPage.js +43 -43
- package/src/components/SellerVerificationPage/sellerVerificationPage.module.css +21 -21
- package/src/components/SortBy/index.js +24 -16
- package/src/components/WebsiteSwitcher/websiteSwitcher.js +109 -109
- package/src/components/commons/Slider/index.js +13 -13
- package/src/components/commons/Tabs/index.js +64 -62
- package/src/index.js +6 -6
- package/src/intercept.js +113 -113
- package/src/moduleOverrideWebpackPlugin.js +70 -70
- package/src/overwrites/peregrine/lib/store/actions/user/asyncActions.js +96 -96
- package/src/overwrites/peregrine/lib/talons/AccountMenu/useAccountMenuItems.js +74 -74
- package/src/overwrites/peregrine/lib/talons/Adapter/useAdapter.js +208 -208
- package/src/overwrites/peregrine/lib/talons/Header/storeSwitcher.gql.js +45 -45
- package/src/overwrites/peregrine/lib/talons/Header/useStoreSwitcher.js +204 -204
- package/src/overwrites/peregrine/lib/talons/Region/useRegion.js +102 -102
- package/src/overwrites/peregrine/lib/talons/SignIn/signIn.gql.js +56 -56
- package/src/overwrites/peregrine/lib/talons/SignIn/useSignIn.js +226 -226
- package/src/overwrites/peregrine/lib/util/deriveErrorMessage.js +34 -34
- package/src/overwrites/pwa-buildpack/lib/queries/getAvailableStoresConfigData.graphql +11 -11
- package/src/overwrites/venia-ui/lib/components/Adapter/adapter.js +112 -112
- package/src/overwrites/venia-ui/lib/components/Header/header.js +130 -118
- package/src/overwrites/venia-ui/lib/components/Header/storeSwitcher.js +105 -105
- package/src/overwrites/venia-ui/lib/components/Header/switcherItem.js +47 -47
- package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/MegaMenu.spec.js +91 -91
- package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/MegaMenuItem.spec.js +123 -123
- package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/Submenu.spec.js +61 -61
- package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/SubmenuColumn.spec.js +50 -50
- package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/__snapshots__/MegaMenu.spec.js.snap +114 -114
- package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/__snapshots__/MegaMenuItem.spec.js.snap +71 -71
- package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/__snapshots__/Submenu.spec.js.snap +59 -59
- package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/__snapshots__/SubmenuColumn.spec.js.snap +34 -34
- package/src/overwrites/venia-ui/lib/components/MegaMenu/index.js +1 -1
- package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenu.js +90 -90
- package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenu.module.css +12 -12
- package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenuItem.js +156 -156
- package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenuItem.module.css +30 -30
- package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.js +89 -89
- package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.module.css +42 -42
- package/src/overwrites/venia-ui/lib/components/MegaMenu/submenuColumn.js +99 -99
- package/src/overwrites/venia-ui/lib/components/MegaMenu/submenuColumn.module.css +28 -28
- package/src/overwrites/venia-ui/lib/components/SearchBar/__stories__/searchBar.js +11 -11
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/__snapshots__/searchField.spec.js.snap +72 -72
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/__snapshots__/suggestedCategories.spec.js.snap +30 -30
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/__snapshots__/suggestedProduct.spec.js.snap +69 -69
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/__snapshots__/suggestedProducts.spec.js.snap +7 -7
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/__snapshots__/suggestions.spec.js.snap +12 -12
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/autocomplete.spec.js +52 -52
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/searchBar.spec.js +82 -82
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/searchField.spec.js +87 -87
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/suggestedCategories.spec.js +45 -45
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/suggestedProduct.spec.js +43 -43
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/suggestedProducts.spec.js +45 -45
- package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/suggestions.spec.js +110 -110
- package/src/overwrites/venia-ui/lib/components/SearchBar/autocomplete.js +172 -172
- package/src/overwrites/venia-ui/lib/components/SearchBar/autocomplete.module.css +62 -62
- package/src/overwrites/venia-ui/lib/components/SearchBar/index.js +1 -1
- package/src/overwrites/venia-ui/lib/components/SearchBar/searchBar.js +74 -74
- package/src/overwrites/venia-ui/lib/components/SearchBar/searchBar.module.css +49 -49
- package/src/overwrites/venia-ui/lib/components/SearchBar/searchField.js +40 -40
- package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedCategories.js +48 -48
- package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedCategories.module.css +13 -13
- package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedCategory.js +49 -49
- package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedProduct.js +97 -97
- package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedProduct.module.css +24 -24
- package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedProducts.js +43 -43
- package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedProducts.module.css +13 -13
- package/src/overwrites/venia-ui/lib/components/SearchBar/suggestions.js +75 -75
- package/src/overwrites/venia-ui/lib/components/SearchBar/suggestions.module.css +6 -6
- package/src/overwrites/venia-ui/lib/components/StoreCodeRoute/storeCodeRoute.js +75 -75
- package/src/overwrites/venia-ui/lib/targets/venia-ui-intercept.js +70 -70
- package/src/queries/getAvailableWebsitesConfigData.graphql +14 -14
- package/src/queries/index.js +30 -30
- package/src/talons/BecomeSeller/becomeSeller.gql.js +45 -45
- package/src/talons/BecomeSeller/useBecomeSeller.js +145 -145
- package/src/talons/BecomeSellerLink/useBecomeSellerLink.js +11 -11
- package/src/talons/BecomeSellerPage/useBecomeSellerPage.js +76 -76
- package/src/talons/Header/useBecomeSellerLink.js +13 -13
- package/src/talons/Header/useWebsiteSwitcher.js +218 -218
- package/src/talons/Seller/seller.gql.js +139 -204
- package/src/talons/Seller/useSeller.js +66 -71
- package/src/talons/SellerAccountPage/useSellerAccountPage.js +174 -174
- package/src/talons/SellerCountry/useSellerCountry.js +25 -25
- package/src/talons/WebsiteByIp/getWebsiteByIp.gql.js +13 -13
- package/src/talons/WebsiteByIp/useWebsiteByIp.js +34 -34
- package/src/talons/WebsiteSwitcher/useWebsiteSwitcher.js +218 -218
- package/src/theme/vars.js +6 -6
- package/src/util/mapSeller.js +7 -7
- package/src/components/OperatingHours/index.js +0 -1
- package/src/components/OperatingHours/operatingHours.js +0 -32
- package/src/components/Seller/sellerAddressCard.js +0 -48
- package/src/components/SellerDetail/index.js +0 -1
- package/src/components/SellerDetail/sellerDetail.js +0 -158
- package/src/components/SellerPage/core.js +0 -10
- package/src/talons/SellerProducts/useSellerProducts.js +0 -129
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { shape, string } from 'prop-types';
|
|
3
|
-
|
|
4
|
-
import { useWebsiteSwitcher } from '@riosst100/pwa-marketplace/src/talons/WebsiteSwitcher/useWebsiteSwitcher';
|
|
5
|
-
import { availableRoutes } from '@magento/venia-ui/lib/components/Routes/routes';
|
|
6
|
-
|
|
7
|
-
import { useStyle } from '@magento/venia-ui/lib/classify';
|
|
8
|
-
import defaultClasses from './websiteSwitcher.module.css';
|
|
9
|
-
import WebsiteSwitcherItem from './websiteSwitcherItem';
|
|
10
|
-
import Shimmer from './websiteSwitcher.shimmer';
|
|
11
|
-
|
|
12
|
-
const WebsiteSwitcher = props => {
|
|
13
|
-
const {
|
|
14
|
-
availableStores,
|
|
15
|
-
currentGroupName,
|
|
16
|
-
currentWebsiteName,
|
|
17
|
-
handleSwitchWebsite,
|
|
18
|
-
storeGroups,
|
|
19
|
-
storeMenuRef,
|
|
20
|
-
storeMenuTriggerRef,
|
|
21
|
-
storeMenuIsOpen,
|
|
22
|
-
handleTriggerClick
|
|
23
|
-
} = useWebsiteSwitcher({ availableRoutes });
|
|
24
|
-
|
|
25
|
-
const classes = useStyle(defaultClasses, props.classes);
|
|
26
|
-
const menuClassName = storeMenuIsOpen ? classes.menu_open : classes.menu;
|
|
27
|
-
|
|
28
|
-
if (!availableStores) return <Shimmer />;
|
|
29
|
-
|
|
30
|
-
if (availableStores.size <= 1) return null;
|
|
31
|
-
|
|
32
|
-
const groups = [];
|
|
33
|
-
const hasOnlyOneGroup = storeGroups.size === 1;
|
|
34
|
-
|
|
35
|
-
storeGroups.forEach((group, key) => {
|
|
36
|
-
const stores = [];
|
|
37
|
-
group.forEach(({ websiteCode, websiteName, isCurrent, storeCode }) => {
|
|
38
|
-
let label = `${websiteName}`;
|
|
39
|
-
stores.push(
|
|
40
|
-
<li
|
|
41
|
-
aria-selected={currentWebsiteName}
|
|
42
|
-
role="option"
|
|
43
|
-
key={storeCode}
|
|
44
|
-
className={classes.menuItem}
|
|
45
|
-
data-cy="WebsiteSwitcher-view"
|
|
46
|
-
>
|
|
47
|
-
<WebsiteSwitcherItem
|
|
48
|
-
active={isCurrent}
|
|
49
|
-
onClick={handleSwitchWebsite}
|
|
50
|
-
option={storeCode}
|
|
51
|
-
option2={websiteCode}
|
|
52
|
-
>
|
|
53
|
-
{label}
|
|
54
|
-
</WebsiteSwitcherItem>
|
|
55
|
-
</li>
|
|
56
|
-
);
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
groups.push(
|
|
60
|
-
<ul
|
|
61
|
-
role="listbox"
|
|
62
|
-
className={classes.groupList}
|
|
63
|
-
key={key}
|
|
64
|
-
data-cy="WebsiteSwitcher-group"
|
|
65
|
-
>
|
|
66
|
-
{stores}
|
|
67
|
-
</ul>
|
|
68
|
-
);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
let triggerLabel = currentWebsiteName ? `${currentWebsiteName}` : '';
|
|
72
|
-
|
|
73
|
-
return (
|
|
74
|
-
<div className={classes.root} data-cy="WebsiteSwitcher-root">
|
|
75
|
-
<button
|
|
76
|
-
data-cy="WebsiteSwitcher-triggerButton"
|
|
77
|
-
className={classes.trigger}
|
|
78
|
-
aria-label={currentWebsiteName || ''}
|
|
79
|
-
onClick={handleTriggerClick}
|
|
80
|
-
ref={storeMenuTriggerRef}
|
|
81
|
-
data-cy="WebsiteSwitcher-trigger"
|
|
82
|
-
aria-expanded={storeMenuIsOpen}
|
|
83
|
-
>
|
|
84
|
-
{triggerLabel || ''}
|
|
85
|
-
</button>
|
|
86
|
-
<div
|
|
87
|
-
ref={storeMenuRef}
|
|
88
|
-
className={menuClassName}
|
|
89
|
-
data-cy="WebsiteSwitcher-menu"
|
|
90
|
-
>
|
|
91
|
-
<div className={classes.groups}>{groups}</div>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
);
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
export default WebsiteSwitcher;
|
|
98
|
-
|
|
99
|
-
WebsiteSwitcher.propTypes = {
|
|
100
|
-
classes: shape({
|
|
101
|
-
groupList: string,
|
|
102
|
-
groups: string,
|
|
103
|
-
menu: string,
|
|
104
|
-
menu_open: string,
|
|
105
|
-
menuItem: string,
|
|
106
|
-
root: string,
|
|
107
|
-
trigger: string
|
|
108
|
-
})
|
|
109
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { shape, string } from 'prop-types';
|
|
3
|
+
|
|
4
|
+
import { useWebsiteSwitcher } from '@riosst100/pwa-marketplace/src/talons/WebsiteSwitcher/useWebsiteSwitcher';
|
|
5
|
+
import { availableRoutes } from '@magento/venia-ui/lib/components/Routes/routes';
|
|
6
|
+
|
|
7
|
+
import { useStyle } from '@magento/venia-ui/lib/classify';
|
|
8
|
+
import defaultClasses from './websiteSwitcher.module.css';
|
|
9
|
+
import WebsiteSwitcherItem from './websiteSwitcherItem';
|
|
10
|
+
import Shimmer from './websiteSwitcher.shimmer';
|
|
11
|
+
|
|
12
|
+
const WebsiteSwitcher = props => {
|
|
13
|
+
const {
|
|
14
|
+
availableStores,
|
|
15
|
+
currentGroupName,
|
|
16
|
+
currentWebsiteName,
|
|
17
|
+
handleSwitchWebsite,
|
|
18
|
+
storeGroups,
|
|
19
|
+
storeMenuRef,
|
|
20
|
+
storeMenuTriggerRef,
|
|
21
|
+
storeMenuIsOpen,
|
|
22
|
+
handleTriggerClick
|
|
23
|
+
} = useWebsiteSwitcher({ availableRoutes });
|
|
24
|
+
|
|
25
|
+
const classes = useStyle(defaultClasses, props.classes);
|
|
26
|
+
const menuClassName = storeMenuIsOpen ? classes.menu_open : classes.menu;
|
|
27
|
+
|
|
28
|
+
if (!availableStores) return <Shimmer />;
|
|
29
|
+
|
|
30
|
+
if (availableStores.size <= 1) return null;
|
|
31
|
+
|
|
32
|
+
const groups = [];
|
|
33
|
+
const hasOnlyOneGroup = storeGroups.size === 1;
|
|
34
|
+
|
|
35
|
+
storeGroups.forEach((group, key) => {
|
|
36
|
+
const stores = [];
|
|
37
|
+
group.forEach(({ websiteCode, websiteName, isCurrent, storeCode }) => {
|
|
38
|
+
let label = `${websiteName}`;
|
|
39
|
+
stores.push(
|
|
40
|
+
<li
|
|
41
|
+
aria-selected={currentWebsiteName}
|
|
42
|
+
role="option"
|
|
43
|
+
key={storeCode}
|
|
44
|
+
className={classes.menuItem}
|
|
45
|
+
data-cy="WebsiteSwitcher-view"
|
|
46
|
+
>
|
|
47
|
+
<WebsiteSwitcherItem
|
|
48
|
+
active={isCurrent}
|
|
49
|
+
onClick={handleSwitchWebsite}
|
|
50
|
+
option={storeCode}
|
|
51
|
+
option2={websiteCode}
|
|
52
|
+
>
|
|
53
|
+
{label}
|
|
54
|
+
</WebsiteSwitcherItem>
|
|
55
|
+
</li>
|
|
56
|
+
);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
groups.push(
|
|
60
|
+
<ul
|
|
61
|
+
role="listbox"
|
|
62
|
+
className={classes.groupList}
|
|
63
|
+
key={key}
|
|
64
|
+
data-cy="WebsiteSwitcher-group"
|
|
65
|
+
>
|
|
66
|
+
{stores}
|
|
67
|
+
</ul>
|
|
68
|
+
);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
let triggerLabel = currentWebsiteName ? `${currentWebsiteName}` : '';
|
|
72
|
+
|
|
73
|
+
return (
|
|
74
|
+
<div className={classes.root} data-cy="WebsiteSwitcher-root">
|
|
75
|
+
<button
|
|
76
|
+
data-cy="WebsiteSwitcher-triggerButton"
|
|
77
|
+
className={classes.trigger}
|
|
78
|
+
aria-label={currentWebsiteName || ''}
|
|
79
|
+
onClick={handleTriggerClick}
|
|
80
|
+
ref={storeMenuTriggerRef}
|
|
81
|
+
data-cy="WebsiteSwitcher-trigger"
|
|
82
|
+
aria-expanded={storeMenuIsOpen}
|
|
83
|
+
>
|
|
84
|
+
{triggerLabel || ''}
|
|
85
|
+
</button>
|
|
86
|
+
<div
|
|
87
|
+
ref={storeMenuRef}
|
|
88
|
+
className={menuClassName}
|
|
89
|
+
data-cy="WebsiteSwitcher-menu"
|
|
90
|
+
>
|
|
91
|
+
<div className={classes.groups}>{groups}</div>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
);
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export default WebsiteSwitcher;
|
|
98
|
+
|
|
99
|
+
WebsiteSwitcher.propTypes = {
|
|
100
|
+
classes: shape({
|
|
101
|
+
groupList: string,
|
|
102
|
+
groups: string,
|
|
103
|
+
menu: string,
|
|
104
|
+
menu_open: string,
|
|
105
|
+
menuItem: string,
|
|
106
|
+
root: string,
|
|
107
|
+
trigger: string
|
|
108
|
+
})
|
|
109
|
+
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import cx from 'classnames';
|
|
3
|
-
|
|
4
|
-
const Slider = (props) => {
|
|
5
|
-
const { rootClassname = '', seller } = props
|
|
6
|
-
const rootClass = cx('slider-container', rootClassname)
|
|
7
|
-
return (
|
|
8
|
-
<div className={rootClass}>
|
|
9
|
-
<img src={seller ? seller.image : ''} />
|
|
10
|
-
</div>
|
|
11
|
-
)
|
|
12
|
-
}
|
|
13
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
|
|
4
|
+
const Slider = (props) => {
|
|
5
|
+
const { rootClassname = '', seller } = props
|
|
6
|
+
const rootClass = cx('slider-container', rootClassname)
|
|
7
|
+
return (
|
|
8
|
+
<div className={rootClass}>
|
|
9
|
+
<img src={seller ? seller.image : ''} />
|
|
10
|
+
</div>
|
|
11
|
+
)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
14
|
export default Slider
|
|
@@ -1,63 +1,65 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
const Tabs = (props) => {
|
|
5
|
-
const {
|
|
6
|
-
data = [],
|
|
7
|
-
onChange = () => { },
|
|
8
|
-
hasContent = false,
|
|
9
|
-
rootClassName = '',
|
|
10
|
-
tabTitleClassName = '',
|
|
11
|
-
tabContentContainerClassName = '',
|
|
12
|
-
tabContentWrapperClassName = '',
|
|
13
|
-
tabActiveClassName = '',
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import cn from 'classnames';
|
|
3
|
+
|
|
4
|
+
const Tabs = (props) => {
|
|
5
|
+
const {
|
|
6
|
+
data = [],
|
|
7
|
+
onChange = () => { },
|
|
8
|
+
hasContent = false,
|
|
9
|
+
rootClassName = '',
|
|
10
|
+
tabTitleClassName = '',
|
|
11
|
+
tabContentContainerClassName = '',
|
|
12
|
+
tabContentWrapperClassName = '',
|
|
13
|
+
tabActiveClassName = '',
|
|
14
|
+
tabWrapperClassName = '',
|
|
15
|
+
} = props
|
|
16
|
+
|
|
17
|
+
const [activeTabs, setActiveTabs] = React.useState(0);
|
|
18
|
+
const rootClass = cn('mb-4 border-b border-gray-100', rootClassName);
|
|
19
|
+
const tabTitleClass = cn('inline-block p-[10px] rounded-t-lg text-[16px] font-semibold', tabTitleClassName);
|
|
20
|
+
const tabContainerClass = cn('tab-content-container', tabContentContainerClassName);
|
|
21
|
+
const tabContentWrapperClass = cn('tab-content-wrapper', tabContentWrapperClassName);
|
|
22
|
+
const tabActiveClass = cn('border-solid border-b-2', tabActiveClassName);
|
|
23
|
+
const tabWrapperClass = cn('flex flex-wrap -mb-px text-sm font-medium text-center gap-4', tabWrapperClassName);
|
|
24
|
+
|
|
25
|
+
const handleSwicthTab = (index) => {
|
|
26
|
+
setActiveTabs(index);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<>
|
|
31
|
+
<div className={rootClass}>
|
|
32
|
+
<ul className={tabWrapperClass} role='tablist'>
|
|
33
|
+
{data.map((item, index) => (
|
|
34
|
+
<li className='me-2' role='presentation'>
|
|
35
|
+
<button
|
|
36
|
+
className={cn(tabTitleClass, index === activeTabs ? tabActiveClass : '')}
|
|
37
|
+
id={item.id}
|
|
38
|
+
role='tab'
|
|
39
|
+
aria-controls={`${item.id}-tab`}
|
|
40
|
+
aria-selected='false'
|
|
41
|
+
onClick={(e) => {
|
|
42
|
+
hasContent ? handleSwicthTab(index) : onChange(index, e);
|
|
43
|
+
e.preventDefault();
|
|
44
|
+
}}
|
|
45
|
+
>
|
|
46
|
+
{item.title}
|
|
47
|
+
</button>
|
|
48
|
+
</li>
|
|
49
|
+
))}
|
|
50
|
+
</ul>
|
|
51
|
+
</div>
|
|
52
|
+
{hasContent ? (
|
|
53
|
+
<div className={tabContainerClass}>
|
|
54
|
+
{data.map((item, index) => (
|
|
55
|
+
<div className={cn(index !== activeTabs ? 'hidden' : '', tabContentWrapperClass)} role='tabpanel' aria-labelledby={`${item.id}-tab`}>
|
|
56
|
+
{item.content}
|
|
57
|
+
</div>
|
|
58
|
+
))}
|
|
59
|
+
</div>
|
|
60
|
+
) : null}
|
|
61
|
+
</>
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
|
|
63
65
|
export default Tabs
|
package/src/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom index for the extension attention this file should be not delete!
|
|
3
|
-
* It is use as main file but this can be empty by default only need to exits.
|
|
4
|
-
*
|
|
5
|
-
* A project index.js should contain default exports like:
|
|
6
|
-
* export { default } from './components/main';
|
|
1
|
+
/**
|
|
2
|
+
* Custom index for the extension attention this file should be not delete!
|
|
3
|
+
* It is use as main file but this can be empty by default only need to exits.
|
|
4
|
+
*
|
|
5
|
+
* A project index.js should contain default exports like:
|
|
6
|
+
* export { default } from './components/main';
|
|
7
7
|
*/
|
package/src/intercept.js
CHANGED
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
const componentOverrideMapping = require('./componentOverrideMapping');
|
|
2
|
-
const moduleOverridePlugin = require('./moduleOverrideWebpackPlugin');
|
|
3
|
-
const { DefinePlugin } = require('webpack');
|
|
4
|
-
const { getAvailableWebsitesConfigData } = require('./Utilities/graphQL');
|
|
5
|
-
const LocalizationPlugin = require('@magento/pwa-buildpack/lib/WebpackTools/plugins/LocalizationPlugin');
|
|
6
|
-
|
|
7
|
-
module.exports = targets => {
|
|
8
|
-
// Perform the asynchronous operation outside the tap
|
|
9
|
-
let availableWebsites;
|
|
10
|
-
|
|
11
|
-
// Use an IIFE (Immediately Invoked Function Expression) to enable async/await
|
|
12
|
-
(async () => {
|
|
13
|
-
availableWebsites = await getAvailableWebsitesConfigData();
|
|
14
|
-
})();
|
|
15
|
-
|
|
16
|
-
targets.of('@magento/pwa-buildpack').specialFeatures.tap(features => {
|
|
17
|
-
features[targets.name] = { i18n: true, esModules: true, cssModules: true, graphqlQueries: true };
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
targets.of('@magento/pwa-buildpack').webpackCompiler.tap(compiler => {
|
|
21
|
-
new moduleOverridePlugin(componentOverrideMapping).apply(compiler);
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
// Tap into webpackCompiler
|
|
25
|
-
targets.of('@magento/pwa-buildpack').webpackCompiler.tap(compiler => {
|
|
26
|
-
// Check if the LocalizationPlugin is present
|
|
27
|
-
if (compiler.options.plugins) {
|
|
28
|
-
const localizationPlugin = compiler.options.plugins.find(
|
|
29
|
-
plugin => plugin instanceof LocalizationPlugin
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
// Check if LocalizationPlugin is found
|
|
33
|
-
if (localizationPlugin) {
|
|
34
|
-
// Store the original mergeLocales function
|
|
35
|
-
const originalMergeLocales = localizationPlugin.mergeLocales;
|
|
36
|
-
|
|
37
|
-
// Define your custom hook
|
|
38
|
-
function myCustomMergeLocalesHook(current, update) {
|
|
39
|
-
// Modify the mergedLocales data here
|
|
40
|
-
Object.keys(update).forEach(key => {
|
|
41
|
-
if (typeof current[key] === 'undefined') {
|
|
42
|
-
current[key] = [];
|
|
43
|
-
}
|
|
44
|
-
if (Array.isArray(current[key]) && Array.isArray(update[key])) {
|
|
45
|
-
if (update[key].toString().includes("venia-ui")) {
|
|
46
|
-
delete update[key];
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
// Return the modified mergedLocales
|
|
52
|
-
return originalMergeLocales.call(localizationPlugin, current, update);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Override mergeLocales with your custom hook
|
|
56
|
-
localizationPlugin.mergeLocales = myCustomMergeLocalesHook;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
targets.of('@magento/pwa-buildpack').envVarDefinitions.tap(defs => {
|
|
62
|
-
defs.sections.push({
|
|
63
|
-
name: "Default Website Code",
|
|
64
|
-
variables: [
|
|
65
|
-
{
|
|
66
|
-
name: "WEBSITE_CODE",
|
|
67
|
-
type: "str",
|
|
68
|
-
desc: "Default Website Code for Multi Website Extension",
|
|
69
|
-
},
|
|
70
|
-
],
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
// Define the routes using the results of the asynchronous operation
|
|
75
|
-
const routes = [
|
|
76
|
-
{
|
|
77
|
-
exact: true,
|
|
78
|
-
name: "BecomeSellerRoute",
|
|
79
|
-
pattern: "/become-seller",
|
|
80
|
-
path: require.resolve("./components/BecomeSellerPage/index.js"),
|
|
81
|
-
authed: true,
|
|
82
|
-
redirectTo: "/sign-in"
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
exact: true,
|
|
86
|
-
name: "SellerAccountRoute",
|
|
87
|
-
pattern: "/seller-account",
|
|
88
|
-
path: require.resolve("./components/SellerAccountPage/index.js"),
|
|
89
|
-
authed: true,
|
|
90
|
-
redirectTo: "/become-seller"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
exact: true,
|
|
94
|
-
name: "SellerPage",
|
|
95
|
-
pattern: "/seller/:urlKey",
|
|
96
|
-
path: require.resolve("./components/SellerPage/index.js"),
|
|
97
|
-
authed: false,
|
|
98
|
-
},
|
|
99
|
-
];
|
|
100
|
-
|
|
101
|
-
// Apply DefinePlugin using the results of the asynchronous operation
|
|
102
|
-
targets.of('@magento/pwa-buildpack').webpackCompiler.tap(compiler => {
|
|
103
|
-
new DefinePlugin({
|
|
104
|
-
AVAILABLE_WEBSITES: JSON.stringify(availableWebsites.availableStoresByUserIp),
|
|
105
|
-
WEBSITE_CODE: process.env.WEBSITE_CODE
|
|
106
|
-
}).apply(compiler);
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
// Handle the routes directly within the routes tap
|
|
110
|
-
targets.of("@magento/venia-ui").routes.tap(routesArray => {
|
|
111
|
-
routesArray.push(...routes);
|
|
112
|
-
return routesArray;
|
|
113
|
-
});
|
|
1
|
+
const componentOverrideMapping = require('./componentOverrideMapping');
|
|
2
|
+
const moduleOverridePlugin = require('./moduleOverrideWebpackPlugin');
|
|
3
|
+
const { DefinePlugin } = require('webpack');
|
|
4
|
+
const { getAvailableWebsitesConfigData } = require('./Utilities/graphQL');
|
|
5
|
+
const LocalizationPlugin = require('@magento/pwa-buildpack/lib/WebpackTools/plugins/LocalizationPlugin');
|
|
6
|
+
|
|
7
|
+
module.exports = targets => {
|
|
8
|
+
// Perform the asynchronous operation outside the tap
|
|
9
|
+
let availableWebsites;
|
|
10
|
+
|
|
11
|
+
// Use an IIFE (Immediately Invoked Function Expression) to enable async/await
|
|
12
|
+
(async () => {
|
|
13
|
+
availableWebsites = await getAvailableWebsitesConfigData();
|
|
14
|
+
})();
|
|
15
|
+
|
|
16
|
+
targets.of('@magento/pwa-buildpack').specialFeatures.tap(features => {
|
|
17
|
+
features[targets.name] = { i18n: true, esModules: true, cssModules: true, graphqlQueries: true };
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
targets.of('@magento/pwa-buildpack').webpackCompiler.tap(compiler => {
|
|
21
|
+
new moduleOverridePlugin(componentOverrideMapping).apply(compiler);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// Tap into webpackCompiler
|
|
25
|
+
targets.of('@magento/pwa-buildpack').webpackCompiler.tap(compiler => {
|
|
26
|
+
// Check if the LocalizationPlugin is present
|
|
27
|
+
if (compiler.options.plugins) {
|
|
28
|
+
const localizationPlugin = compiler.options.plugins.find(
|
|
29
|
+
plugin => plugin instanceof LocalizationPlugin
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
// Check if LocalizationPlugin is found
|
|
33
|
+
if (localizationPlugin) {
|
|
34
|
+
// Store the original mergeLocales function
|
|
35
|
+
const originalMergeLocales = localizationPlugin.mergeLocales;
|
|
36
|
+
|
|
37
|
+
// Define your custom hook
|
|
38
|
+
function myCustomMergeLocalesHook(current, update) {
|
|
39
|
+
// Modify the mergedLocales data here
|
|
40
|
+
Object.keys(update).forEach(key => {
|
|
41
|
+
if (typeof current[key] === 'undefined') {
|
|
42
|
+
current[key] = [];
|
|
43
|
+
}
|
|
44
|
+
if (Array.isArray(current[key]) && Array.isArray(update[key])) {
|
|
45
|
+
if (update[key].toString().includes("venia-ui")) {
|
|
46
|
+
delete update[key];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// Return the modified mergedLocales
|
|
52
|
+
return originalMergeLocales.call(localizationPlugin, current, update);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Override mergeLocales with your custom hook
|
|
56
|
+
localizationPlugin.mergeLocales = myCustomMergeLocalesHook;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
targets.of('@magento/pwa-buildpack').envVarDefinitions.tap(defs => {
|
|
62
|
+
defs.sections.push({
|
|
63
|
+
name: "Default Website Code",
|
|
64
|
+
variables: [
|
|
65
|
+
{
|
|
66
|
+
name: "WEBSITE_CODE",
|
|
67
|
+
type: "str",
|
|
68
|
+
desc: "Default Website Code for Multi Website Extension",
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// Define the routes using the results of the asynchronous operation
|
|
75
|
+
const routes = [
|
|
76
|
+
{
|
|
77
|
+
exact: true,
|
|
78
|
+
name: "BecomeSellerRoute",
|
|
79
|
+
pattern: "/become-seller",
|
|
80
|
+
path: require.resolve("./components/BecomeSellerPage/index.js"),
|
|
81
|
+
authed: true,
|
|
82
|
+
redirectTo: "/sign-in"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
exact: true,
|
|
86
|
+
name: "SellerAccountRoute",
|
|
87
|
+
pattern: "/seller-account",
|
|
88
|
+
path: require.resolve("./components/SellerAccountPage/index.js"),
|
|
89
|
+
authed: true,
|
|
90
|
+
redirectTo: "/become-seller"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
exact: true,
|
|
94
|
+
name: "SellerPage",
|
|
95
|
+
pattern: "/seller/:urlKey",
|
|
96
|
+
path: require.resolve("./components/SellerPage/index.js"),
|
|
97
|
+
authed: false,
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
|
|
101
|
+
// Apply DefinePlugin using the results of the asynchronous operation
|
|
102
|
+
targets.of('@magento/pwa-buildpack').webpackCompiler.tap(compiler => {
|
|
103
|
+
new DefinePlugin({
|
|
104
|
+
AVAILABLE_WEBSITES: JSON.stringify(availableWebsites.availableStoresByUserIp),
|
|
105
|
+
WEBSITE_CODE: process.env.WEBSITE_CODE
|
|
106
|
+
}).apply(compiler);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// Handle the routes directly within the routes tap
|
|
110
|
+
targets.of("@magento/venia-ui").routes.tap(routesArray => {
|
|
111
|
+
routesArray.push(...routes);
|
|
112
|
+
return routesArray;
|
|
113
|
+
});
|
|
114
114
|
};
|