@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.
Files changed (126) hide show
  1. package/package.json +1 -1
  2. package/src/Utilities/graphQL.js +76 -76
  3. package/src/componentOverrideMapping.js +17 -17
  4. package/src/components/BecomeSeller/becomeSeller.js +335 -335
  5. package/src/components/BecomeSeller/becomeSeller.module.css +46 -46
  6. package/src/components/BecomeSellerLink/becomeSellerLink.js +52 -52
  7. package/src/components/BecomeSellerLink/becomeSellerLink.module.css +12 -12
  8. package/src/components/BecomeSellerPage/becomeSellerPage.js +45 -45
  9. package/src/components/BecomeSellerPage/becomeSellerPage.module.css +21 -21
  10. package/src/components/Filter/index.js +53 -53
  11. package/src/components/Header/becomeSellerLink.js +28 -28
  12. package/src/components/Header/becomeSellerLink.module.css +12 -12
  13. package/src/components/Header/websiteSwitcher.js +109 -109
  14. package/src/components/OperatingHours/index.js +1 -0
  15. package/src/components/OperatingHours/operatingHours.js +35 -0
  16. package/src/components/Pagination/index.js +49 -49
  17. package/src/components/PhoneTextInput/phoneTextInput.module.css +21 -21
  18. package/src/components/ProductItem/index.js +50 -50
  19. package/src/components/Search/index.js +16 -16
  20. package/src/components/Seller/index.js +1 -1
  21. package/src/components/Seller/seller.js +57 -249
  22. package/src/components/Seller/sellerAddressCard.js +48 -0
  23. package/src/components/SellerAccountPage/sellerAccountPage.js +110 -110
  24. package/src/components/SellerAccountPage/sellerAccountPage.module.css +55 -55
  25. package/src/components/SellerCountry/sellerCountry.gql.js +11 -11
  26. package/src/components/SellerDetail/index.js +1 -0
  27. package/src/components/SellerDetail/sellerDetail.js +161 -0
  28. package/src/components/SellerInformation/index.js +1 -1
  29. package/src/components/SellerInformation/sellerInformation.js +86 -90
  30. package/src/components/SellerLocation/index.js +1 -1
  31. package/src/components/SellerLocation/sellerLocation.js +19 -19
  32. package/src/components/SellerLocation/sellerLocationItem.js +27 -27
  33. package/src/components/SellerPage/sellerPage.js +9 -9
  34. package/src/components/SellerProducts/sellerProducts.js +46 -46
  35. package/src/components/SellerReview/index.js +1 -1
  36. package/src/components/SellerReview/sellerReview.js +143 -143
  37. package/src/components/SellerReviewItem/sellerReviewItem.js +60 -60
  38. package/src/components/SellerVerification/sellerVerification.js +198 -198
  39. package/src/components/SellerVerification/sellerVerification.module.css +47 -47
  40. package/src/components/SellerVerificationPage/sellerVerificationPage.js +43 -43
  41. package/src/components/SellerVerificationPage/sellerVerificationPage.module.css +21 -21
  42. package/src/components/SortBy/index.js +24 -24
  43. package/src/components/WebsiteSwitcher/websiteSwitcher.js +109 -109
  44. package/src/components/commons/Slider/index.js +13 -13
  45. package/src/components/commons/Tabs/index.js +64 -64
  46. package/src/index.js +6 -6
  47. package/src/intercept.js +113 -113
  48. package/src/moduleOverrideWebpackPlugin.js +70 -70
  49. package/src/overwrites/peregrine/lib/store/actions/user/asyncActions.js +96 -96
  50. package/src/overwrites/peregrine/lib/talons/AccountMenu/useAccountMenuItems.js +74 -74
  51. package/src/overwrites/peregrine/lib/talons/Adapter/useAdapter.js +208 -208
  52. package/src/overwrites/peregrine/lib/talons/Header/storeSwitcher.gql.js +45 -45
  53. package/src/overwrites/peregrine/lib/talons/Header/useStoreSwitcher.js +204 -204
  54. package/src/overwrites/peregrine/lib/talons/Region/useRegion.js +102 -102
  55. package/src/overwrites/peregrine/lib/talons/SignIn/signIn.gql.js +56 -56
  56. package/src/overwrites/peregrine/lib/talons/SignIn/useSignIn.js +226 -226
  57. package/src/overwrites/peregrine/lib/util/deriveErrorMessage.js +34 -34
  58. package/src/overwrites/pwa-buildpack/lib/queries/getAvailableStoresConfigData.graphql +11 -11
  59. package/src/overwrites/venia-ui/lib/components/Adapter/adapter.js +112 -112
  60. package/src/overwrites/venia-ui/lib/components/Header/header.js +130 -130
  61. package/src/overwrites/venia-ui/lib/components/Header/storeSwitcher.js +105 -105
  62. package/src/overwrites/venia-ui/lib/components/Header/switcherItem.js +47 -47
  63. package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/MegaMenu.spec.js +91 -91
  64. package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/MegaMenuItem.spec.js +123 -123
  65. package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/Submenu.spec.js +61 -61
  66. package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/SubmenuColumn.spec.js +50 -50
  67. package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/__snapshots__/MegaMenu.spec.js.snap +114 -114
  68. package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/__snapshots__/MegaMenuItem.spec.js.snap +71 -71
  69. package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/__snapshots__/Submenu.spec.js.snap +59 -59
  70. package/src/overwrites/venia-ui/lib/components/MegaMenu/__tests__/__snapshots__/SubmenuColumn.spec.js.snap +34 -34
  71. package/src/overwrites/venia-ui/lib/components/MegaMenu/index.js +1 -1
  72. package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenu.js +90 -90
  73. package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenu.module.css +12 -12
  74. package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenuItem.js +156 -156
  75. package/src/overwrites/venia-ui/lib/components/MegaMenu/megaMenuItem.module.css +30 -30
  76. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.js +89 -89
  77. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenu.module.css +42 -42
  78. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenuColumn.js +99 -99
  79. package/src/overwrites/venia-ui/lib/components/MegaMenu/submenuColumn.module.css +28 -28
  80. package/src/overwrites/venia-ui/lib/components/SearchBar/__stories__/searchBar.js +11 -11
  81. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/__snapshots__/searchField.spec.js.snap +72 -72
  82. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/__snapshots__/suggestedCategories.spec.js.snap +30 -30
  83. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/__snapshots__/suggestedProduct.spec.js.snap +69 -69
  84. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/__snapshots__/suggestedProducts.spec.js.snap +7 -7
  85. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/__snapshots__/suggestions.spec.js.snap +12 -12
  86. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/autocomplete.spec.js +52 -52
  87. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/searchBar.spec.js +82 -82
  88. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/searchField.spec.js +87 -87
  89. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/suggestedCategories.spec.js +45 -45
  90. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/suggestedProduct.spec.js +43 -43
  91. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/suggestedProducts.spec.js +45 -45
  92. package/src/overwrites/venia-ui/lib/components/SearchBar/__tests__/suggestions.spec.js +110 -110
  93. package/src/overwrites/venia-ui/lib/components/SearchBar/autocomplete.js +172 -172
  94. package/src/overwrites/venia-ui/lib/components/SearchBar/autocomplete.module.css +62 -62
  95. package/src/overwrites/venia-ui/lib/components/SearchBar/index.js +1 -1
  96. package/src/overwrites/venia-ui/lib/components/SearchBar/searchBar.js +74 -74
  97. package/src/overwrites/venia-ui/lib/components/SearchBar/searchBar.module.css +49 -49
  98. package/src/overwrites/venia-ui/lib/components/SearchBar/searchField.js +40 -40
  99. package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedCategories.js +48 -48
  100. package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedCategories.module.css +13 -13
  101. package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedCategory.js +49 -49
  102. package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedProduct.js +97 -97
  103. package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedProduct.module.css +24 -24
  104. package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedProducts.js +43 -43
  105. package/src/overwrites/venia-ui/lib/components/SearchBar/suggestedProducts.module.css +13 -13
  106. package/src/overwrites/venia-ui/lib/components/SearchBar/suggestions.js +75 -75
  107. package/src/overwrites/venia-ui/lib/components/SearchBar/suggestions.module.css +6 -6
  108. package/src/overwrites/venia-ui/lib/components/StoreCodeRoute/storeCodeRoute.js +75 -75
  109. package/src/overwrites/venia-ui/lib/targets/venia-ui-intercept.js +70 -70
  110. package/src/queries/getAvailableWebsitesConfigData.graphql +14 -14
  111. package/src/queries/index.js +30 -30
  112. package/src/talons/BecomeSeller/becomeSeller.gql.js +45 -45
  113. package/src/talons/BecomeSeller/useBecomeSeller.js +145 -145
  114. package/src/talons/BecomeSellerLink/useBecomeSellerLink.js +11 -11
  115. package/src/talons/BecomeSellerPage/useBecomeSellerPage.js +76 -76
  116. package/src/talons/Header/useBecomeSellerLink.js +13 -13
  117. package/src/talons/Header/useWebsiteSwitcher.js +218 -218
  118. package/src/talons/Seller/seller.gql.js +204 -139
  119. package/src/talons/Seller/useSeller.js +71 -66
  120. package/src/talons/SellerAccountPage/useSellerAccountPage.js +174 -174
  121. package/src/talons/SellerCountry/useSellerCountry.js +25 -25
  122. package/src/talons/WebsiteByIp/getWebsiteByIp.gql.js +13 -13
  123. package/src/talons/WebsiteByIp/useWebsiteByIp.js +34 -34
  124. package/src/talons/WebsiteSwitcher/useWebsiteSwitcher.js +218 -218
  125. package/src/theme/vars.js +6 -6
  126. package/src/util/mapSeller.js +7 -7
@@ -1,89 +1,89 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
-
4
- import { useSubMenu } from '@magento/peregrine/lib/talons/MegaMenu/useSubMenu';
5
-
6
- import { useStyle } from '@magento/venia-ui/lib/classify';
7
- import defaultClasses from './submenu.module.css';
8
- import SubmenuColumn from './submenuColumn';
9
-
10
- /**
11
- * The Submenu component displays submenu in mega menu
12
- *
13
- * @param {array} props.items - categories to display
14
- * @param {int} props.mainNavWidth - width of the main nav. It's used for setting min-width of the submenu
15
- * @param {function} props.onNavigate - function called when clicking on Link
16
- */
17
- const Submenu = props => {
18
- const {
19
- items,
20
- mainNavWidth,
21
- isFocused,
22
- subMenuState,
23
- handleCloseSubMenu,
24
- categoryUrlSuffix,
25
- onNavigate
26
- } = props;
27
- const PADDING_OFFSET = 20;
28
- const classes = useStyle(defaultClasses, props.classes);
29
-
30
- const talonProps = useSubMenu({
31
- isFocused,
32
- subMenuState,
33
- handleCloseSubMenu
34
- });
35
-
36
- const { isSubMenuActive } = talonProps;
37
-
38
- const subMenuClassname = isSubMenuActive
39
- ? classes.submenu_active
40
- : classes.submenu_inactive;
41
-
42
- const subMenus = items.map((category, index) => {
43
- const keyboardProps =
44
- index === items.length - 1 ? talonProps.keyboardProps : {};
45
- return (
46
- <SubmenuColumn
47
- index={index}
48
- keyboardProps={keyboardProps}
49
- key={category.uid}
50
- category={category}
51
- categoryUrlSuffix={categoryUrlSuffix}
52
- onNavigate={onNavigate}
53
- handleCloseSubMenu={handleCloseSubMenu}
54
- />
55
- );
56
- });
57
-
58
- return (
59
- <div className={subMenuClassname}>
60
- <div
61
- className={classes.submenuItems}
62
- style={{ minWidth: mainNavWidth + PADDING_OFFSET }}
63
- >
64
- {subMenus}
65
- </div>
66
- </div>
67
- );
68
- };
69
-
70
- export default Submenu;
71
-
72
- Submenu.propTypes = {
73
- items: PropTypes.arrayOf(
74
- PropTypes.shape({
75
- children: PropTypes.array.isRequired,
76
- uid: PropTypes.string.isRequired,
77
- include_in_menu: PropTypes.number.isRequired,
78
- isActive: PropTypes.bool.isRequired,
79
- name: PropTypes.string.isRequired,
80
- path: PropTypes.array.isRequired,
81
- position: PropTypes.number.isRequired,
82
- url_path: PropTypes.string.isRequired
83
- })
84
- ).isRequired,
85
- mainNavWidth: PropTypes.number.isRequired,
86
- categoryUrlSuffix: PropTypes.string,
87
- onNavigate: PropTypes.func.isRequired,
88
- handleCloseSubMenu: PropTypes.func.isRequired
89
- };
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+
4
+ import { useSubMenu } from '@magento/peregrine/lib/talons/MegaMenu/useSubMenu';
5
+
6
+ import { useStyle } from '@magento/venia-ui/lib/classify';
7
+ import defaultClasses from './submenu.module.css';
8
+ import SubmenuColumn from './submenuColumn';
9
+
10
+ /**
11
+ * The Submenu component displays submenu in mega menu
12
+ *
13
+ * @param {array} props.items - categories to display
14
+ * @param {int} props.mainNavWidth - width of the main nav. It's used for setting min-width of the submenu
15
+ * @param {function} props.onNavigate - function called when clicking on Link
16
+ */
17
+ const Submenu = props => {
18
+ const {
19
+ items,
20
+ mainNavWidth,
21
+ isFocused,
22
+ subMenuState,
23
+ handleCloseSubMenu,
24
+ categoryUrlSuffix,
25
+ onNavigate
26
+ } = props;
27
+ const PADDING_OFFSET = 20;
28
+ const classes = useStyle(defaultClasses, props.classes);
29
+
30
+ const talonProps = useSubMenu({
31
+ isFocused,
32
+ subMenuState,
33
+ handleCloseSubMenu
34
+ });
35
+
36
+ const { isSubMenuActive } = talonProps;
37
+
38
+ const subMenuClassname = isSubMenuActive
39
+ ? classes.submenu_active
40
+ : classes.submenu_inactive;
41
+
42
+ const subMenus = items.map((category, index) => {
43
+ const keyboardProps =
44
+ index === items.length - 1 ? talonProps.keyboardProps : {};
45
+ return (
46
+ <SubmenuColumn
47
+ index={index}
48
+ keyboardProps={keyboardProps}
49
+ key={category.uid}
50
+ category={category}
51
+ categoryUrlSuffix={categoryUrlSuffix}
52
+ onNavigate={onNavigate}
53
+ handleCloseSubMenu={handleCloseSubMenu}
54
+ />
55
+ );
56
+ });
57
+
58
+ return (
59
+ <div className={subMenuClassname}>
60
+ <div
61
+ className={classes.submenuItems}
62
+ style={{ minWidth: mainNavWidth + PADDING_OFFSET }}
63
+ >
64
+ {subMenus}
65
+ </div>
66
+ </div>
67
+ );
68
+ };
69
+
70
+ export default Submenu;
71
+
72
+ Submenu.propTypes = {
73
+ items: PropTypes.arrayOf(
74
+ PropTypes.shape({
75
+ children: PropTypes.array.isRequired,
76
+ uid: PropTypes.string.isRequired,
77
+ include_in_menu: PropTypes.number.isRequired,
78
+ isActive: PropTypes.bool.isRequired,
79
+ name: PropTypes.string.isRequired,
80
+ path: PropTypes.array.isRequired,
81
+ position: PropTypes.number.isRequired,
82
+ url_path: PropTypes.string.isRequired
83
+ })
84
+ ).isRequired,
85
+ mainNavWidth: PropTypes.number.isRequired,
86
+ categoryUrlSuffix: PropTypes.string,
87
+ onNavigate: PropTypes.func.isRequired,
88
+ handleCloseSubMenu: PropTypes.func.isRequired
89
+ };
@@ -1,43 +1,43 @@
1
- .submenu {
2
- composes: absolute from global;
3
- composes: bg-white from global;
4
- composes: flex-wrap from global;
5
- composes: justify-between from global;
6
- composes: left-0 from global;
7
- composes: px-3 from global;
8
- composes: py-5 from global;
9
- composes: right-0 from global;
10
- top: 139px;
11
- box-shadow: 0 3px rgb(var(--venia-global-color-gray-100));
12
- }
13
-
14
- /* TODO @TW: cannot compose */
15
- .submenu::before {
16
- box-shadow: inset 0 2px rgb(var(--venia-global-color-gray-100));
17
- content: '';
18
- height: 1px;
19
- left: 0;
20
- pointer-events: none;
21
- position: absolute;
22
- right: 0;
23
- top: 0;
24
- }
25
-
26
- .submenu_inactive {
27
- composes: submenu;
28
- composes: hidden from global;
29
- }
30
-
31
- .submenu_active {
32
- composes: submenu;
33
- composes: flex from global;
34
- }
35
-
36
- .submenuItems {
37
- composes: flex from global;
38
- composes: flex-wrap from global;
39
- composes: justify-between from global;
40
- composes: max-w-site from global;
41
- composes: ml-auto from global;
42
- composes: mr-auto from global;
1
+ .submenu {
2
+ composes: absolute from global;
3
+ composes: bg-white from global;
4
+ composes: flex-wrap from global;
5
+ composes: justify-between from global;
6
+ composes: left-0 from global;
7
+ composes: px-3 from global;
8
+ composes: py-5 from global;
9
+ composes: right-0 from global;
10
+ top: 139px;
11
+ box-shadow: 0 3px rgb(var(--venia-global-color-gray-100));
12
+ }
13
+
14
+ /* TODO @TW: cannot compose */
15
+ .submenu::before {
16
+ box-shadow: inset 0 2px rgb(var(--venia-global-color-gray-100));
17
+ content: '';
18
+ height: 1px;
19
+ left: 0;
20
+ pointer-events: none;
21
+ position: absolute;
22
+ right: 0;
23
+ top: 0;
24
+ }
25
+
26
+ .submenu_inactive {
27
+ composes: submenu;
28
+ composes: hidden from global;
29
+ }
30
+
31
+ .submenu_active {
32
+ composes: submenu;
33
+ composes: flex from global;
34
+ }
35
+
36
+ .submenuItems {
37
+ composes: flex from global;
38
+ composes: flex-wrap from global;
39
+ composes: justify-between from global;
40
+ composes: max-w-site from global;
41
+ composes: ml-auto from global;
42
+ composes: mr-auto from global;
43
43
  }
@@ -1,99 +1,99 @@
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 './submenuColumn.module.css';
8
- import PropTypes from 'prop-types';
9
-
10
- /**
11
- * The SubmenuColumn component displays columns with categories in submenu
12
- *
13
- * @param {MegaMenuCategory} props.category
14
- * @param {function} props.onNavigate - function called when clicking on Link
15
- */
16
- const SubmenuColumn = props => {
17
- const {
18
- category,
19
- categoryUrlSuffix,
20
- onNavigate,
21
- handleCloseSubMenu
22
- } = props;
23
- const classes = useStyle(defaultClasses, props.classes);
24
-
25
- const categoryUrl = resourceUrl(
26
- `/${category.url_path}${categoryUrlSuffix || ''}`
27
- );
28
- let children = null;
29
-
30
- if (category.children.length) {
31
- const childrenItems = category.children.map((subCategory, index) => {
32
- const { url_path, isActive, name } = subCategory;
33
- const categoryUrl = resourceUrl(
34
- `/${url_path}${categoryUrlSuffix || ''}`
35
- );
36
-
37
- // setting keyboardProps if it is last child of that category
38
- const keyboardProps =
39
- index === category.children.length - 1
40
- ? props.keyboardProps
41
- : {};
42
-
43
- return (
44
- <li key={index} className={classes.submenuChildItem}>
45
- <Link
46
- {...keyboardProps}
47
- className={isActive ? classes.linkActive : classes.link}
48
- data-cy="MegaMenu-SubmenuColumn-link"
49
- to={categoryUrl}
50
- onClick={onNavigate}
51
- >
52
- {name}
53
- </Link>
54
- </li>
55
- );
56
- });
57
-
58
- children = <ul className={classes.submenuChild}>{childrenItems}</ul>;
59
- }
60
-
61
- // setting keyboardProps if category does not have any sub-category
62
- const keyboardProps = category.children.length ? {} : props.keyboardProps;
63
-
64
- return (
65
- <div className={classes.submenuColumn}>
66
- <Link
67
- {...keyboardProps}
68
- className={classes.link}
69
- data-cy="MegaMenu-SubmenuColumn-link"
70
- to={categoryUrl}
71
- onClick={() => {
72
- handleCloseSubMenu();
73
- onNavigate();
74
- }}
75
- >
76
- <span className={classes.heading}>{category.name}</span>
77
- </Link>
78
- {children}
79
- </div>
80
- );
81
- };
82
-
83
- export default SubmenuColumn;
84
-
85
- SubmenuColumn.propTypes = {
86
- category: PropTypes.shape({
87
- children: PropTypes.array,
88
- uid: PropTypes.string.isRequired,
89
- include_in_menu: PropTypes.number,
90
- isActive: PropTypes.bool.isRequired,
91
- name: PropTypes.string.isRequired,
92
- path: PropTypes.array.isRequired,
93
- position: PropTypes.number.isRequired,
94
- url_path: PropTypes.string.isRequired
95
- }).isRequired,
96
- categoryUrlSuffix: PropTypes.string,
97
- onNavigate: PropTypes.func.isRequired,
98
- handleCloseSubMenu: PropTypes.func.isRequired
99
- };
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 './submenuColumn.module.css';
8
+ import PropTypes from 'prop-types';
9
+
10
+ /**
11
+ * The SubmenuColumn component displays columns with categories in submenu
12
+ *
13
+ * @param {MegaMenuCategory} props.category
14
+ * @param {function} props.onNavigate - function called when clicking on Link
15
+ */
16
+ const SubmenuColumn = props => {
17
+ const {
18
+ category,
19
+ categoryUrlSuffix,
20
+ onNavigate,
21
+ handleCloseSubMenu
22
+ } = props;
23
+ const classes = useStyle(defaultClasses, props.classes);
24
+
25
+ const categoryUrl = resourceUrl(
26
+ `/${category.url_path}${categoryUrlSuffix || ''}`
27
+ );
28
+ let children = null;
29
+
30
+ if (category.children.length) {
31
+ const childrenItems = category.children.map((subCategory, index) => {
32
+ const { url_path, isActive, name } = subCategory;
33
+ const categoryUrl = resourceUrl(
34
+ `/${url_path}${categoryUrlSuffix || ''}`
35
+ );
36
+
37
+ // setting keyboardProps if it is last child of that category
38
+ const keyboardProps =
39
+ index === category.children.length - 1
40
+ ? props.keyboardProps
41
+ : {};
42
+
43
+ return (
44
+ <li key={index} className={classes.submenuChildItem}>
45
+ <Link
46
+ {...keyboardProps}
47
+ className={isActive ? classes.linkActive : classes.link}
48
+ data-cy="MegaMenu-SubmenuColumn-link"
49
+ to={categoryUrl}
50
+ onClick={onNavigate}
51
+ >
52
+ {name}
53
+ </Link>
54
+ </li>
55
+ );
56
+ });
57
+
58
+ children = <ul className={classes.submenuChild}>{childrenItems}</ul>;
59
+ }
60
+
61
+ // setting keyboardProps if category does not have any sub-category
62
+ const keyboardProps = category.children.length ? {} : props.keyboardProps;
63
+
64
+ return (
65
+ <div className={classes.submenuColumn}>
66
+ <Link
67
+ {...keyboardProps}
68
+ className={classes.link}
69
+ data-cy="MegaMenu-SubmenuColumn-link"
70
+ to={categoryUrl}
71
+ onClick={() => {
72
+ handleCloseSubMenu();
73
+ onNavigate();
74
+ }}
75
+ >
76
+ <span className={classes.heading}>{category.name}</span>
77
+ </Link>
78
+ {children}
79
+ </div>
80
+ );
81
+ };
82
+
83
+ export default SubmenuColumn;
84
+
85
+ SubmenuColumn.propTypes = {
86
+ category: PropTypes.shape({
87
+ children: PropTypes.array,
88
+ uid: PropTypes.string.isRequired,
89
+ include_in_menu: PropTypes.number,
90
+ isActive: PropTypes.bool.isRequired,
91
+ name: PropTypes.string.isRequired,
92
+ path: PropTypes.array.isRequired,
93
+ position: PropTypes.number.isRequired,
94
+ url_path: PropTypes.string.isRequired
95
+ }).isRequired,
96
+ categoryUrlSuffix: PropTypes.string,
97
+ onNavigate: PropTypes.func.isRequired,
98
+ handleCloseSubMenu: PropTypes.func.isRequired
99
+ };
@@ -1,28 +1,28 @@
1
- .submenuColumn {
2
- composes: max-w-[235px] from global;
3
- composes: p-5 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
- composes: mt-5 from global;
24
- }
25
-
26
- .submenuChildItem {
27
- composes: mb-3 from global;
28
- }
1
+ .submenuColumn {
2
+ composes: max-w-[235px] from global;
3
+ composes: p-5 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
+ composes: mt-5 from global;
24
+ }
25
+
26
+ .submenuChildItem {
27
+ composes: mb-3 from global;
28
+ }
@@ -1,11 +1,11 @@
1
- import React from 'react';
2
- import { storiesOf } from '@storybook/react';
3
-
4
- import SearchBar from '../searchBar';
5
- import defaultClasses from '../searchBar.module.css';
6
-
7
- const stories = storiesOf('Components/SearchBar', module);
8
-
9
- stories.add('Search Bar', () => (
10
- <SearchBar classes={defaultClasses} isOpen={true} />
11
- ));
1
+ import React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+
4
+ import SearchBar from '../searchBar';
5
+ import defaultClasses from '../searchBar.module.css';
6
+
7
+ const stories = storiesOf('Components/SearchBar', module);
8
+
9
+ stories.add('Search Bar', () => (
10
+ <SearchBar classes={defaultClasses} isOpen={true} />
11
+ ));