@graphcommerce/magento-product 8.1.0-canary.9 → 9.0.0-canary.100

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 (93) hide show
  1. package/Api/ProductListItem.graphql +1 -2
  2. package/Api/ProductPageItem.graphql +1 -1
  3. package/CHANGELOG.md +276 -84
  4. package/Config.graphqls +13 -0
  5. package/components/AddProductsToCart/AddProductsToCartButton.tsx +17 -4
  6. package/components/AddProductsToCart/AddProductsToCartFab.tsx +7 -2
  7. package/components/AddProductsToCart/AddProductsToCartForm.tsx +31 -29
  8. package/components/AddProductsToCart/AddProductsToCartSnackbar.tsx +14 -63
  9. package/components/AddProductsToCart/AddProductsToCartSnackbarMessage.tsx +84 -0
  10. package/components/AddProductsToCart/UseAddProductsToCartAction.graphql +1 -1
  11. package/components/AddProductsToCart/findAddedItems.ts +1 -4
  12. package/components/AddProductsToCart/index.ts +1 -0
  13. package/components/AddProductsToCart/useAddProductsToCartAction.ts +2 -1
  14. package/components/AddProductsToCart/useFormAddProductsToCart.ts +1 -2
  15. package/components/JsonLdProduct/JsonLdProduct.graphql +1 -1
  16. package/components/JsonLdProduct/ProductPageJsonLd.tsx +1 -1
  17. package/components/ProductAddToCart/ProductAddToCart.tsx +6 -8
  18. package/components/ProductCustomizable/CustomizableCheckboxOption.tsx +3 -4
  19. package/components/ProductCustomizable/CustomizableMultipleOption.tsx +2 -2
  20. package/components/ProductCustomizable/CustomizableRadioOption.tsx +2 -2
  21. package/components/ProductCustomizable/ProductCustomizable.graphql +1 -1
  22. package/components/ProductCustomizable/index.ts +1 -0
  23. package/components/ProductCustomizable/productCustomizableSelectors.ts +59 -0
  24. package/components/ProductFiltersPro/PriceSlider.tsx +1 -2
  25. package/components/ProductFiltersPro/ProductFilterEqualChip.tsx +4 -5
  26. package/components/ProductFiltersPro/ProductFilterEqualSection.tsx +6 -7
  27. package/components/ProductFiltersPro/ProductFilterRangeChip.tsx +1 -1
  28. package/components/ProductFiltersPro/ProductFilterRangeSection.tsx +1 -1
  29. package/components/ProductFiltersPro/ProductFiltersPro.tsx +103 -19
  30. package/components/ProductFiltersPro/ProductFiltersProAggregations.tsx +41 -20
  31. package/components/ProductFiltersPro/ProductFiltersProAllFiltersChip.tsx +6 -10
  32. package/components/ProductFiltersPro/ProductFiltersProAllFiltersSidebar.tsx +18 -8
  33. package/components/ProductFiltersPro/ProductFiltersProCategorySection.tsx +130 -0
  34. package/components/ProductFiltersPro/ProductFiltersProChips.tsx +10 -8
  35. package/components/ProductFiltersPro/ProductFiltersProClearAll.tsx +4 -16
  36. package/components/ProductFiltersPro/ProductFiltersProLayoutSidebar.tsx +15 -7
  37. package/components/ProductFiltersPro/ProductFiltersProLimitChip.tsx +2 -8
  38. package/components/ProductFiltersPro/ProductFiltersProLimitSection.tsx +7 -10
  39. package/components/ProductFiltersPro/ProductFiltersProNoResults.tsx +79 -0
  40. package/components/ProductFiltersPro/ProductFiltersProSortChip.tsx +5 -7
  41. package/components/ProductFiltersPro/ProductFiltersProSortDirectionArrow.tsx +2 -4
  42. package/components/ProductFiltersPro/ProductFiltersProSortSection.tsx +11 -3
  43. package/components/ProductFiltersPro/activeAggregations.ts +5 -9
  44. package/components/ProductFiltersPro/applyAggregationCount.ts +14 -8
  45. package/components/ProductFiltersPro/index.ts +9 -0
  46. package/components/ProductFiltersPro/{useClearAllFiltersHandler.ts → useProductFiltersProClearAllAction.ts} +1 -1
  47. package/components/ProductFiltersPro/useProductFiltersProHasFiltersApplied.ts +21 -0
  48. package/components/ProductFiltersPro/useProductFiltersProSort.tsx +7 -3
  49. package/components/ProductList/ProductList.graphql +8 -5
  50. package/components/ProductListCount/ProductListCount.tsx +3 -1
  51. package/components/ProductListFilters/ProductFilters.graphql +11 -2
  52. package/components/ProductListFilters/ProductListFilters.graphql +1 -1
  53. package/components/ProductListFilters/ProductListFilters.tsx +13 -19
  54. package/components/ProductListFiltersContainer/ProductListFiltersContainer.tsx +2 -4
  55. package/components/ProductListItem/ProductDiscountLabel.tsx +2 -3
  56. package/components/ProductListItem/ProductListItem.tsx +3 -3
  57. package/components/ProductListItem/ProductListItemTitleAndPrice.tsx +18 -15
  58. package/components/ProductListItems/ProductFilterTypes.graphql +8 -0
  59. package/components/ProductListItems/ProductListItemsBase.tsx +71 -30
  60. package/components/ProductListItems/filterTypes.tsx +14 -7
  61. package/components/ProductListItems/filteredProductList.tsx +44 -17
  62. package/components/ProductListItems/getFilterTypes.ts +33 -4
  63. package/components/ProductListItems/productListApplyCategoryDefaults.ts +50 -4
  64. package/components/ProductListItems/renderer.tsx +8 -2
  65. package/components/ProductListPagination/ProductListPagination.tsx +39 -20
  66. package/components/ProductListPrice/ProductListPrice.tsx +9 -4
  67. package/components/ProductListSuggestions/ProductListSuggestions.graphql +5 -0
  68. package/components/ProductListSuggestions/ProductListSuggestions.tsx +42 -0
  69. package/components/ProductPageBreadcrumb/ProductPageBreadcrumb.graphql +3 -0
  70. package/components/ProductPageBreadcrumb/ProductPageBreadcrumb.tsx +3 -0
  71. package/components/ProductPageBreadcrumb/ProductPageBreadcrumbs.tsx +40 -0
  72. package/components/ProductPageBreadcrumb/index.ts +1 -0
  73. package/components/ProductPageDescription/ComplexTextValue.graphql +1 -1
  74. package/components/ProductPageDescription/ProductPageDescription.tsx +1 -1
  75. package/components/ProductPageGallery/ProductImage.graphql +1 -0
  76. package/components/ProductPageGallery/ProductPageGallery.tsx +14 -8
  77. package/components/ProductPagePrice/ProductPagePrice.graphql +0 -6
  78. package/components/ProductPagePrice/ProductPagePrice.tsx +19 -12
  79. package/components/ProductPagePrice/ProductPagePriceTiers.tsx +4 -3
  80. package/components/ProductPagePrice/useCustomizableOptionPrice.ts +11 -53
  81. package/components/ProductShortDescription/ProductShortDescription.tsx +2 -0
  82. package/components/ProductSpecs/ProductSpecs.graphql +21 -1
  83. package/components/ProductSpecs/ProductSpecs.tsx +5 -11
  84. package/components/ProductSpecs/ProductSpecsAggregations.tsx +34 -0
  85. package/components/ProductSpecs/ProductSpecsCustomAttributes.tsx +45 -0
  86. package/components/ProductSpecs/ProductSpecsTypes.graphql +8 -0
  87. package/components/ProductStaticPaths/getProductStaticPaths.ts +1 -1
  88. package/components/ProductWeight/ProductWeight.tsx +12 -9
  89. package/components/index.ts +2 -0
  90. package/hooks/useProductList.ts +148 -0
  91. package/hooks/useProductListLink.ts +6 -3
  92. package/index.ts +1 -0
  93. package/package.json +14 -14
@@ -8,11 +8,14 @@ import {
8
8
  } from '../components/ProductListItems/filterTypes'
9
9
 
10
10
  export function productListLinkFromFilter(props: ProductFilterParams): string {
11
- const { url, sort, dir, currentPage, pageSize, filters: incoming } = props
11
+ const { url, sort, dir, currentPage, pageSize, filters: incoming, search } = props
12
12
  const isSearch = url.startsWith('search')
13
13
  const filters = isSearch ? incoming : { ...incoming, category_uid: undefined }
14
14
  const uid = incoming?.category_uid?.eq || incoming?.category_uid?.in?.[0]
15
15
 
16
+ let urlBase = url
17
+ if (isSearch) urlBase = search ? `search/${search}` : 'search'
18
+
16
19
  // base url path generation
17
20
  let paginateSort = ``
18
21
  let query = ``
@@ -38,9 +41,9 @@ export function productListLinkFromFilter(props: ProductFilterParams): string {
38
41
 
39
42
  // it's a category with filters, use the /c/ route.
40
43
  if (query && !isSearch)
41
- return `/c/${url}${paginateSort}/q${uid ? `/category_uid/${uid}` : ''}${query}`
44
+ return `/c/${urlBase}${paginateSort}/q${uid ? `/category_uid/${uid}` : ''}${query}`
42
45
 
43
- return query ? `/${url}${paginateSort}/q${query}` : `/${url}${paginateSort}`
46
+ return query ? `/${urlBase}${paginateSort}/q${query}` : `/${urlBase}${paginateSort}`
44
47
  }
45
48
 
46
49
  export function productListLink(props: ProductListParams): string {
package/index.ts CHANGED
@@ -5,4 +5,5 @@ export * from './hooks/useProductLink'
5
5
  export * from './hooks/useProductListLink'
6
6
  export * from './hooks/useProductListLinkReplace'
7
7
  export * from './hooks/useProductListParamsContext'
8
+ export * from './hooks/useProductList'
8
9
  export * from './hooks/ProductLink.gql'
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@graphcommerce/magento-product",
3
3
  "homepage": "https://www.graphcommerce.org/",
4
4
  "repository": "github:graphcommerce-org/graphcommerce",
5
- "version": "8.1.0-canary.9",
5
+ "version": "9.0.0-canary.100",
6
6
  "sideEffects": false,
7
7
  "prettier": "@graphcommerce/prettier-config-pwa",
8
8
  "eslintConfig": {
@@ -15,21 +15,21 @@
15
15
  "schema-dts": "^1.1.2"
16
16
  },
17
17
  "devDependencies": {
18
- "typescript": "5.3.3"
18
+ "typescript": "5.5.3"
19
19
  },
20
20
  "peerDependencies": {
21
- "@graphcommerce/ecommerce-ui": "^8.1.0-canary.9",
22
- "@graphcommerce/eslint-config-pwa": "^8.1.0-canary.9",
23
- "@graphcommerce/framer-next-pages": "^8.1.0-canary.9",
24
- "@graphcommerce/framer-scroller": "^8.1.0-canary.9",
25
- "@graphcommerce/graphql": "^8.1.0-canary.9",
26
- "@graphcommerce/graphql-mesh": "^8.1.0-canary.9",
27
- "@graphcommerce/image": "^8.1.0-canary.9",
28
- "@graphcommerce/magento-cart": "^8.1.0-canary.9",
29
- "@graphcommerce/magento-store": "^8.1.0-canary.9",
30
- "@graphcommerce/next-ui": "^8.1.0-canary.9",
31
- "@graphcommerce/prettier-config-pwa": "^8.1.0-canary.9",
32
- "@graphcommerce/typescript-config-pwa": "^8.1.0-canary.9",
21
+ "@graphcommerce/ecommerce-ui": "^9.0.0-canary.100",
22
+ "@graphcommerce/eslint-config-pwa": "^9.0.0-canary.100",
23
+ "@graphcommerce/framer-next-pages": "^9.0.0-canary.100",
24
+ "@graphcommerce/framer-scroller": "^9.0.0-canary.100",
25
+ "@graphcommerce/graphql": "^9.0.0-canary.100",
26
+ "@graphcommerce/graphql-mesh": "^9.0.0-canary.100",
27
+ "@graphcommerce/image": "^9.0.0-canary.100",
28
+ "@graphcommerce/magento-cart": "^9.0.0-canary.100",
29
+ "@graphcommerce/magento-store": "^9.0.0-canary.100",
30
+ "@graphcommerce/next-ui": "^9.0.0-canary.100",
31
+ "@graphcommerce/prettier-config-pwa": "^9.0.0-canary.100",
32
+ "@graphcommerce/typescript-config-pwa": "^9.0.0-canary.100",
33
33
  "@lingui/core": "^4.2.1",
34
34
  "@lingui/macro": "^4.2.1",
35
35
  "@lingui/react": "^4.2.1",