@riosst100/pwa-marketplace 1.4.0 → 1.4.2
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/componentOverrideMapping.js +3 -1
- package/src/components/BrandSlider/brandSlider.js +91 -0
- package/src/components/BrandSlider/index.js +1 -0
- package/src/components/BrandSlider/item.js +43 -0
- package/src/components/CollectibleGameSets/collectibleGameSets.js +52 -0
- package/src/components/CollectibleGameSets/index.js +1 -0
- package/src/components/CollectibleGameSetsPage/collectibleGameSetsPage.js +10 -0
- package/src/components/CollectibleGameSetsPage/index.js +1 -0
- package/src/components/Divider/index.js +11 -0
- package/src/components/SellerDetail/sellerDetail.js +1 -1
- package/src/components/SellerReviewItem/sellerReviewItem.js +51 -51
- package/src/intercept.js +7 -0
- package/src/overwrites/peregrine/lib/talons/MegaMenu/megaMenu.gql.js +24 -0
- package/src/overwrites/venia-ui/lib/RootComponents/Category/categoryContent.js +5 -0
- package/src/overwrites/venia-ui/lib/components/Button/button.js +100 -0
- package/src/overwrites/venia-ui/lib/components/Button/button.module.css +128 -0
- package/src/overwrites/venia-ui/lib/components/Button/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/MegaMenu/customSubmenuColumn.js +55 -0
- package/src/overwrites/venia-ui/lib/components/MegaMenu/customSubmenuColumn.module.css +29 -0
- package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenuItem.js +4 -1
- package/src/overwrites/venia-ui/lib/components/MegaMenu/shopByColumn.js +1 -1
- package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.js +3 -20
- package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.module.css +2 -1
- package/src/overwrites/venia-ui/lib/components/MegaMenu/submenuColumn.js +62 -14
- package/src/overwrites/venia-ui/lib/components/MegaMenu/submenuColumn.module.css +5 -0
- package/src/overwrites/venia-ui/lib/components/ProductFullDetail/components/productReview.js +55 -0
- package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.js +238 -46
- package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.module.css +1 -5
- package/src/overwrites/venia-ui/lib/components/QuantityStepper/quantityStepper.js +23 -4
- package/src/overwrites/venia-ui/lib/components/QuantityStepper/quantityStepper.module.css +3 -7
- package/src/overwrites/venia-ui/lib/components/RichText/index.js +1 -0
- package/src/overwrites/venia-ui/lib/components/RichText/richText.js +21 -0
- package/src/overwrites/venia-ui/lib/components/RichText/richText.module.css +19 -0
- package/src/talons/CollectibleGameSets/collectibleGameSets.gql.js +27 -0
- package/src/talons/CollectibleGameSets/useCollectibleGameSets.js +65 -0
- package/src/theme/vars.js +2 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Link } from 'react-router-dom';
|
|
3
|
+
|
|
4
|
+
import resourceUrl from '@magento/peregrine/lib/util/makeUrl';
|
|
5
|
+
|
|
6
|
+
import { useStyle } from '@magento/venia-ui/lib/classify';
|
|
7
|
+
import defaultClasses from './customSubmenuColumn.module.css';
|
|
8
|
+
|
|
9
|
+
const CustomSubmenuColumn = props => {
|
|
10
|
+
const {
|
|
11
|
+
category,
|
|
12
|
+
categoryUrlSuffix,
|
|
13
|
+
onNavigate,
|
|
14
|
+
handleCloseSubMenu,
|
|
15
|
+
customMenuItems,
|
|
16
|
+
toggleCustomMenu
|
|
17
|
+
} = props;
|
|
18
|
+
|
|
19
|
+
const classes = useStyle(defaultClasses, props.classes);
|
|
20
|
+
|
|
21
|
+
let children = null;
|
|
22
|
+
|
|
23
|
+
if (customMenuItems.length) {
|
|
24
|
+
const childrenItems = customMenuItems.map((submenu, index) => {
|
|
25
|
+
const { name, path } = submenu;
|
|
26
|
+
|
|
27
|
+
const categoryUrl = resourceUrl(
|
|
28
|
+
`/${path}`
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<li key={index} className={classes.submenuChildItem}>
|
|
33
|
+
<Link
|
|
34
|
+
className={classes.link}
|
|
35
|
+
data-cy="MegaMenu-CustomSubmenuColumn-link"
|
|
36
|
+
to={categoryUrl}
|
|
37
|
+
onClick={() => {
|
|
38
|
+
handleCloseSubMenu();
|
|
39
|
+
onNavigate();
|
|
40
|
+
toggleCustomMenu();
|
|
41
|
+
}}
|
|
42
|
+
>
|
|
43
|
+
{name}
|
|
44
|
+
</Link>
|
|
45
|
+
</li>
|
|
46
|
+
);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
children = <ul className={classes.submenuChild}>{childrenItems}</ul>;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return children;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export default CustomSubmenuColumn;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.customSubmenuColumn {
|
|
2
|
+
composes: max-w-[235px] from global;
|
|
3
|
+
composes: p-2 from global;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.heading {
|
|
7
|
+
composes: font-semibold from global;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.link {
|
|
11
|
+
composes: whitespace-nowrap from global;
|
|
12
|
+
|
|
13
|
+
composes: focus_underline from global;
|
|
14
|
+
|
|
15
|
+
composes: hover_underline from global;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.linkActive {
|
|
19
|
+
composes: underline from global;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.submenuChild {
|
|
23
|
+
margin-left: 15px;
|
|
24
|
+
composes: mt-0 from global;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.submenuChildItem {
|
|
28
|
+
composes: mb-0 from global;
|
|
29
|
+
}
|
|
@@ -61,6 +61,8 @@ const MegaMenuItem = props => {
|
|
|
61
61
|
? classes.megaMenuItem_active
|
|
62
62
|
: classes.megaMenuItem;
|
|
63
63
|
|
|
64
|
+
const arrow = <ArrowDown2 className='ml-2 stroke-current' size="14" color={textPrimary} variant="Outline" />;
|
|
65
|
+
|
|
64
66
|
const children = useMemo(() => {
|
|
65
67
|
return category.children.length ? (
|
|
66
68
|
<Submenu
|
|
@@ -73,6 +75,7 @@ const MegaMenuItem = props => {
|
|
|
73
75
|
handleCloseSubMenu={handleCloseSubMenu}
|
|
74
76
|
categoryUrlSuffix={categoryUrlSuffix}
|
|
75
77
|
onNavigate={onNavigate}
|
|
78
|
+
arrow={arrow}
|
|
76
79
|
/>
|
|
77
80
|
) : null;
|
|
78
81
|
}, [
|
|
@@ -86,7 +89,7 @@ const MegaMenuItem = props => {
|
|
|
86
89
|
]);
|
|
87
90
|
|
|
88
91
|
const maybeDownArrowIcon = category.children.length ? (
|
|
89
|
-
<ArrowDown2 className='ml-2 stroke-current' size="
|
|
92
|
+
<ArrowDown2 className='ml-2 stroke-current' size="14" color={textPrimary} variant="Outline" />
|
|
90
93
|
) : null;
|
|
91
94
|
|
|
92
95
|
const linkAttributes = category.children.length
|
|
@@ -25,7 +25,8 @@ const Submenu = props => {
|
|
|
25
25
|
handleCloseSubMenu,
|
|
26
26
|
categoryUrlSuffix,
|
|
27
27
|
parentCategory,
|
|
28
|
-
onNavigate
|
|
28
|
+
onNavigate,
|
|
29
|
+
arrow
|
|
29
30
|
} = props;
|
|
30
31
|
const PADDING_OFFSET = 20;
|
|
31
32
|
const classes = useStyle(defaultClasses, props.classes);
|
|
@@ -53,6 +54,7 @@ const Submenu = props => {
|
|
|
53
54
|
category={category}
|
|
54
55
|
categoryUrlSuffix={categoryUrlSuffix}
|
|
55
56
|
onNavigate={onNavigate}
|
|
57
|
+
arrow={arrow}
|
|
56
58
|
handleCloseSubMenu={handleCloseSubMenu}
|
|
57
59
|
/>
|
|
58
60
|
);
|
|
@@ -102,22 +104,3 @@ const Submenu = props => {
|
|
|
102
104
|
};
|
|
103
105
|
|
|
104
106
|
export default Submenu;
|
|
105
|
-
|
|
106
|
-
Submenu.propTypes = {
|
|
107
|
-
items: PropTypes.arrayOf(
|
|
108
|
-
PropTypes.shape({
|
|
109
|
-
children: PropTypes.array.isRequired,
|
|
110
|
-
uid: PropTypes.string.isRequired,
|
|
111
|
-
include_in_menu: PropTypes.number.isRequired,
|
|
112
|
-
isActive: PropTypes.bool.isRequired,
|
|
113
|
-
name: PropTypes.string.isRequired,
|
|
114
|
-
path: PropTypes.array.isRequired,
|
|
115
|
-
position: PropTypes.number.isRequired,
|
|
116
|
-
url_path: PropTypes.string.isRequired
|
|
117
|
-
})
|
|
118
|
-
).isRequired,
|
|
119
|
-
mainNavWidth: PropTypes.number.isRequired,
|
|
120
|
-
categoryUrlSuffix: PropTypes.string,
|
|
121
|
-
onNavigate: PropTypes.func.isRequired,
|
|
122
|
-
handleCloseSubMenu: PropTypes.func.isRequired
|
|
123
|
-
};
|
|
@@ -43,8 +43,9 @@
|
|
|
43
43
|
.submenuItems {
|
|
44
44
|
composes: flex from global;
|
|
45
45
|
composes: flex-wrap from global;
|
|
46
|
+
composes: gap-[30px] from global;
|
|
46
47
|
/* composes: justify-between from global; */
|
|
47
48
|
/* composes: ml-auto from global; */
|
|
48
49
|
/* composes: mr-auto from global; */
|
|
49
|
-
composes: flex-col from global;
|
|
50
|
+
/* composes: flex-col from global; */
|
|
50
51
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
2
|
import { Link } from 'react-router-dom';
|
|
3
3
|
|
|
4
4
|
import resourceUrl from '@magento/peregrine/lib/util/makeUrl';
|
|
@@ -6,6 +6,9 @@ import resourceUrl from '@magento/peregrine/lib/util/makeUrl';
|
|
|
6
6
|
import { useStyle } from '@magento/venia-ui/lib/classify';
|
|
7
7
|
import defaultClasses from './submenuColumn.module.css';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
|
+
import { ArrowDown2 } from 'iconsax-react';
|
|
10
|
+
import { textPrimary } from '@riosst100/pwa-marketplace/src/theme/vars';
|
|
11
|
+
import CustomSubmenuColumn from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/MegaMenu/customSubmenuColumn';
|
|
9
12
|
|
|
10
13
|
/**
|
|
11
14
|
* The SubmenuColumn component displays columns with categories in submenu
|
|
@@ -18,7 +21,8 @@ const SubmenuColumn = props => {
|
|
|
18
21
|
category,
|
|
19
22
|
categoryUrlSuffix,
|
|
20
23
|
onNavigate,
|
|
21
|
-
handleCloseSubMenu
|
|
24
|
+
handleCloseSubMenu,
|
|
25
|
+
arrow
|
|
22
26
|
} = props;
|
|
23
27
|
|
|
24
28
|
const classes = useStyle(defaultClasses, props.classes);
|
|
@@ -28,6 +32,10 @@ const SubmenuColumn = props => {
|
|
|
28
32
|
);
|
|
29
33
|
let children = null;
|
|
30
34
|
|
|
35
|
+
// let maybeDownArrowIcon = () => {
|
|
36
|
+
// return ;
|
|
37
|
+
// };
|
|
38
|
+
|
|
31
39
|
if (category.children.length) {
|
|
32
40
|
const childrenItems = category.children.map((subCategory, index) => {
|
|
33
41
|
const { url_path, isActive, name } = subCategory;
|
|
@@ -41,20 +49,60 @@ const SubmenuColumn = props => {
|
|
|
41
49
|
? props.keyboardProps
|
|
42
50
|
: {};
|
|
43
51
|
|
|
52
|
+
const customMenuItems = subCategory.custom_submenu;
|
|
53
|
+
|
|
54
|
+
const [showCustomMenu, setShowCustomMenu] = useState(false);
|
|
55
|
+
|
|
56
|
+
const toggleCustomMenu = () => {
|
|
57
|
+
if (!showCustomMenu) {
|
|
58
|
+
setShowCustomMenu(true);
|
|
59
|
+
} else {
|
|
60
|
+
setShowCustomMenu(false);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const customSubMenus = customMenuItems.length ? (
|
|
65
|
+
<CustomSubmenuColumn
|
|
66
|
+
categoryUrlSuffix={categoryUrlSuffix}
|
|
67
|
+
onNavigate={onNavigate}
|
|
68
|
+
handleCloseSubMenu={handleCloseSubMenu}
|
|
69
|
+
category={subCategory}
|
|
70
|
+
customMenuItems={customMenuItems}
|
|
71
|
+
toggleCustomMenu={toggleCustomMenu}
|
|
72
|
+
/>
|
|
73
|
+
) : '';
|
|
74
|
+
|
|
44
75
|
return (
|
|
45
76
|
<li key={index} className={classes.submenuChildItem}>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
77
|
+
{customMenuItems.length ? (
|
|
78
|
+
<>
|
|
79
|
+
<div
|
|
80
|
+
// {...keyboardProps}
|
|
81
|
+
className={isActive ? classes.linkActive : classes.link}
|
|
82
|
+
data-cy="MegaMenu-SubmenuColumn-link"
|
|
83
|
+
onClick={() => {
|
|
84
|
+
toggleCustomMenu();
|
|
85
|
+
}}
|
|
86
|
+
>
|
|
87
|
+
{name}
|
|
88
|
+
{arrow}
|
|
89
|
+
</div>
|
|
90
|
+
{showCustomMenu ? customSubMenus : ''}
|
|
91
|
+
</>
|
|
92
|
+
) : (
|
|
93
|
+
<Link
|
|
94
|
+
{...keyboardProps}
|
|
95
|
+
className={isActive ? classes.linkActive : classes.link}
|
|
96
|
+
data-cy="MegaMenu-SubmenuColumn-link"
|
|
97
|
+
to={categoryUrl}
|
|
98
|
+
onClick={() => {
|
|
99
|
+
handleCloseSubMenu();
|
|
100
|
+
onNavigate();
|
|
101
|
+
}}
|
|
102
|
+
>
|
|
103
|
+
{name}
|
|
104
|
+
</Link>
|
|
105
|
+
)}
|
|
58
106
|
</li>
|
|
59
107
|
);
|
|
60
108
|
});
|
|
@@ -13,10 +13,15 @@
|
|
|
13
13
|
composes: focus_underline from global;
|
|
14
14
|
|
|
15
15
|
composes: hover_underline from global;
|
|
16
|
+
|
|
17
|
+
align-items: center;
|
|
18
|
+
composes: flex from global;
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
.linkActive {
|
|
19
22
|
composes: underline from global;
|
|
23
|
+
align-items: center;
|
|
24
|
+
composes: flex from global;
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
.submenuChild {
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import Review from '@riosst100/pwa-marketplace/src/components/SellerReviewItem';
|
|
3
|
+
import { Star1 } from 'iconsax-react';
|
|
4
|
+
import Button from '../../Button';
|
|
5
|
+
|
|
6
|
+
const productReview = (props) => {
|
|
7
|
+
|
|
8
|
+
const { className } = props;
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<div className={className}>
|
|
12
|
+
<div className='review-summary flex justify-between mb-[30px] pb-[30px] border-b border-gray-100'>
|
|
13
|
+
<div className="justify-start items-end gap-[15px] inline-flex">
|
|
14
|
+
<div className="text-center text-zinc-900 text-[40px] font-semibold leading-10">4.7</div>
|
|
15
|
+
<div className="flex-col justify-start items-start gap-[9px] inline-flex">
|
|
16
|
+
<div className="justify-start items-start gap-1.5 inline-flex">
|
|
17
|
+
<div className="w-3.5 h-3.5 relative">
|
|
18
|
+
<Star1 color='#F7C317' size={14} className='fill-[#F7C317]' />
|
|
19
|
+
</div>
|
|
20
|
+
<div className="w-3.5 h-3.5 relative">
|
|
21
|
+
<Star1 color='#F7C317' size={14} className='fill-[#F7C317]' />
|
|
22
|
+
</div>
|
|
23
|
+
<div className="w-3.5 h-3.5 relative">
|
|
24
|
+
<Star1 color='#F7C317' size={14} className='fill-[#F7C317]' />
|
|
25
|
+
</div>
|
|
26
|
+
<div className="w-3.5 h-3.5 relative">
|
|
27
|
+
<Star1 color='#F7C317' size={14} className='fill-[#F7C317]' />
|
|
28
|
+
</div>
|
|
29
|
+
<div className="w-3.5 h-3.5 relative">
|
|
30
|
+
<Star1 color='#D9D9D9' size={14} className='fill-[#D9D9D9]' />
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
<div className="text-center text-zinc-900 text-sm font-normal leading-[18px]">(26 Reviews)</div>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<Button
|
|
37
|
+
classes={{
|
|
38
|
+
content: 'normal-case font-normal text-base'
|
|
39
|
+
}}
|
|
40
|
+
>
|
|
41
|
+
Write a review
|
|
42
|
+
</Button>
|
|
43
|
+
</div>
|
|
44
|
+
<div className='review-list flex flex-col gap-y-4'>
|
|
45
|
+
<Review />
|
|
46
|
+
<Review />
|
|
47
|
+
<Review />
|
|
48
|
+
<Review />
|
|
49
|
+
<Review />
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export default productReview
|