@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.
Files changed (37) hide show
  1. package/package.json +1 -1
  2. package/src/componentOverrideMapping.js +3 -1
  3. package/src/components/BrandSlider/brandSlider.js +91 -0
  4. package/src/components/BrandSlider/index.js +1 -0
  5. package/src/components/BrandSlider/item.js +43 -0
  6. package/src/components/CollectibleGameSets/collectibleGameSets.js +52 -0
  7. package/src/components/CollectibleGameSets/index.js +1 -0
  8. package/src/components/CollectibleGameSetsPage/collectibleGameSetsPage.js +10 -0
  9. package/src/components/CollectibleGameSetsPage/index.js +1 -0
  10. package/src/components/Divider/index.js +11 -0
  11. package/src/components/SellerDetail/sellerDetail.js +1 -1
  12. package/src/components/SellerReviewItem/sellerReviewItem.js +51 -51
  13. package/src/intercept.js +7 -0
  14. package/src/overwrites/peregrine/lib/talons/MegaMenu/megaMenu.gql.js +24 -0
  15. package/src/overwrites/venia-ui/lib/RootComponents/Category/categoryContent.js +5 -0
  16. package/src/overwrites/venia-ui/lib/components/Button/button.js +100 -0
  17. package/src/overwrites/venia-ui/lib/components/Button/button.module.css +128 -0
  18. package/src/overwrites/venia-ui/lib/components/Button/index.js +1 -0
  19. package/src/overwrites/venia-ui/lib/components/MegaMenu/customSubmenuColumn.js +55 -0
  20. package/src/overwrites/venia-ui/lib/components/MegaMenu/customSubmenuColumn.module.css +29 -0
  21. package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenuItem.js +4 -1
  22. package/src/overwrites/venia-ui/lib/components/MegaMenu/shopByColumn.js +1 -1
  23. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.js +3 -20
  24. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.module.css +2 -1
  25. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenuColumn.js +62 -14
  26. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenuColumn.module.css +5 -0
  27. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/components/productReview.js +55 -0
  28. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.js +238 -46
  29. package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.module.css +1 -5
  30. package/src/overwrites/venia-ui/lib/components/QuantityStepper/quantityStepper.js +23 -4
  31. package/src/overwrites/venia-ui/lib/components/QuantityStepper/quantityStepper.module.css +3 -7
  32. package/src/overwrites/venia-ui/lib/components/RichText/index.js +1 -0
  33. package/src/overwrites/venia-ui/lib/components/RichText/richText.js +21 -0
  34. package/src/overwrites/venia-ui/lib/components/RichText/richText.module.css +19 -0
  35. package/src/talons/CollectibleGameSets/collectibleGameSets.gql.js +27 -0
  36. package/src/talons/CollectibleGameSets/useCollectibleGameSets.js +65 -0
  37. 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="16" color={textPrimary} variant="Outline" />
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,7 @@ const ShopByColumn = props => {
25
25
 
26
26
  let items = null;
27
27
 
28
- const itemCountToShow = 4;
28
+ const itemCountToShow = 9999;
29
29
 
30
30
  if (shopBy.items.length) {
31
31
  const childrenItems = shopBy.items.map((shopByItem, index) => {
@@ -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
- <Link
47
- {...keyboardProps}
48
- className={isActive ? classes.linkActive : classes.link}
49
- data-cy="MegaMenu-SubmenuColumn-link"
50
- to={categoryUrl}
51
- onClick={() => {
52
- handleCloseSubMenu();
53
- onNavigate();
54
- }}
55
- >
56
- {name}
57
- </Link>
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