@riosst100/pwa-marketplace 1.2.7 → 1.2.8
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/package.json +1 -1
- package/src/Utilities/graphQL.js +76 -76
- package/src/componentOverrideMapping.js +17 -17
- 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/OperatingHours/index.js +1 -0
- package/src/components/OperatingHours/operatingHours.js +35 -0
- package/src/components/Pagination/index.js +49 -49
- 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 +57 -249
- package/src/components/Seller/sellerAddressCard.js +48 -0
- 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/SellerDetail/index.js +1 -0
- package/src/components/SellerDetail/sellerDetail.js +161 -0
- package/src/components/SellerInformation/index.js +1 -1
- package/src/components/SellerInformation/sellerInformation.js +86 -90
- package/src/components/SellerLocation/index.js +1 -1
- package/src/components/SellerLocation/sellerLocation.js +19 -19
- package/src/components/SellerLocation/sellerLocationItem.js +27 -27
- package/src/components/SellerPage/sellerPage.js +9 -9
- package/src/components/SellerProducts/sellerProducts.js +46 -46
- 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 -24
- 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 -64
- 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 -130
- 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 +204 -139
- package/src/talons/Seller/useSeller.js +71 -66
- 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
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ArrowDown2, Filter } from 'iconsax-react';
|
|
3
|
-
|
|
4
|
-
const Sort = () => {
|
|
5
|
-
return (
|
|
6
|
-
<>
|
|
7
|
-
<div className='x-container xs_flex xs_justify-between xs_w-full xl_w-fit'>
|
|
8
|
-
<div class="xs_flex xl_hidden flex-col items-start gap-[10px] px-[15px] py-[10px] relative flex-[0_0_auto] bg-white rounded-[30px] border border-solid border-gray-100">
|
|
9
|
-
<div class="inline-flex items-center gap-[20px] relative flex-[0_0_auto]">
|
|
10
|
-
<Filter color="#292D32" size={14} variant="Outline" className='stroke-[#292D32]' />
|
|
11
|
-
<div class="relative w-fit text-[14px] tracking-[0] leading-[normal] whitespace-nowrap">Filter</div>
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|
|
14
|
-
<div class="inline-flex flex-col items-start gap-[10px] px-[15px] py-[10px] relative flex-[0_0_auto] bg-white rounded-[30px] border border-solid border-gray-100">
|
|
15
|
-
<div class="inline-flex items-center gap-[20px] relative flex-[0_0_auto]">
|
|
16
|
-
<div class="relative w-fit text-[14px] tracking-[0] leading-[normal] whitespace-nowrap">Most relevant</div>
|
|
17
|
-
<ArrowDown2 color="#292D32" size={14} variant="Outline" className='stroke-[#292D32]' />
|
|
18
|
-
</div>
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
21
|
-
</>
|
|
22
|
-
)
|
|
23
|
-
}
|
|
24
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArrowDown2, Filter } from 'iconsax-react';
|
|
3
|
+
|
|
4
|
+
const Sort = () => {
|
|
5
|
+
return (
|
|
6
|
+
<>
|
|
7
|
+
<div className='x-container xs_flex xs_justify-between xs_w-full xl_w-fit'>
|
|
8
|
+
<div class="xs_flex xl_hidden flex-col items-start gap-[10px] px-[15px] py-[10px] relative flex-[0_0_auto] bg-white rounded-[30px] border border-solid border-gray-100">
|
|
9
|
+
<div class="inline-flex items-center gap-[20px] relative flex-[0_0_auto]">
|
|
10
|
+
<Filter color="#292D32" size={14} variant="Outline" className='stroke-[#292D32]' />
|
|
11
|
+
<div class="relative w-fit text-[14px] tracking-[0] leading-[normal] whitespace-nowrap">Filter</div>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="inline-flex flex-col items-start gap-[10px] px-[15px] py-[10px] relative flex-[0_0_auto] bg-white rounded-[30px] border border-solid border-gray-100">
|
|
15
|
+
<div class="inline-flex items-center gap-[20px] relative flex-[0_0_auto]">
|
|
16
|
+
<div class="relative w-fit text-[14px] tracking-[0] leading-[normal] whitespace-nowrap">Most relevant</div>
|
|
17
|
+
<ArrowDown2 color="#292D32" size={14} variant="Outline" className='stroke-[#292D32]' />
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</>
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
25
|
export default Sort;
|
|
@@ -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,65 +1,65 @@
|
|
|
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
|
-
|
|
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
|
+
|
|
65
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
|
*/
|