@wix/headless-stores 0.0.29 → 0.0.31

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 (69) hide show
  1. package/cjs/dist/react/Category.d.ts +30 -0
  2. package/cjs/dist/react/Category.js +30 -0
  3. package/cjs/dist/react/Collection.d.ts +145 -0
  4. package/cjs/dist/react/Collection.js +145 -0
  5. package/cjs/dist/react/FilteredCollection.d.ts +134 -0
  6. package/cjs/dist/react/FilteredCollection.js +134 -0
  7. package/cjs/dist/react/Product.d.ts +43 -18
  8. package/cjs/dist/react/Product.js +43 -18
  9. package/cjs/dist/react/ProductActions.d.ts +30 -0
  10. package/cjs/dist/react/ProductActions.js +30 -0
  11. package/cjs/dist/react/ProductModifiers.d.ts +172 -0
  12. package/cjs/dist/react/ProductModifiers.js +172 -0
  13. package/cjs/dist/react/ProductVariantSelector.d.ts +118 -0
  14. package/cjs/dist/react/ProductVariantSelector.js +118 -0
  15. package/cjs/dist/react/ProductsList.d.ts +107 -16
  16. package/cjs/dist/react/ProductsList.js +101 -16
  17. package/cjs/dist/react/RelatedProducts.d.ts +55 -0
  18. package/cjs/dist/react/RelatedProducts.js +55 -0
  19. package/cjs/dist/react/SelectedVariant.d.ts +59 -0
  20. package/cjs/dist/react/SelectedVariant.js +59 -0
  21. package/cjs/dist/react/SocialSharing.d.ts +82 -0
  22. package/cjs/dist/react/SocialSharing.js +82 -0
  23. package/cjs/dist/react/Sort.d.ts +22 -0
  24. package/cjs/dist/react/Sort.js +22 -0
  25. package/cjs/dist/services/category-service.d.ts +87 -0
  26. package/cjs/dist/services/category-service.js +87 -0
  27. package/cjs/dist/services/collection-service.d.ts +89 -0
  28. package/cjs/dist/services/collection-service.js +89 -0
  29. package/cjs/dist/services/product-service.d.ts +76 -0
  30. package/cjs/dist/services/product-service.js +76 -0
  31. package/cjs/dist/services/products-list-service.d.ts +93 -0
  32. package/cjs/dist/services/products-list-service.js +93 -0
  33. package/cjs/dist/services/related-products-service.d.ts +75 -0
  34. package/cjs/dist/services/related-products-service.js +75 -0
  35. package/dist/react/Category.d.ts +30 -0
  36. package/dist/react/Category.js +30 -0
  37. package/dist/react/Collection.d.ts +145 -0
  38. package/dist/react/Collection.js +145 -0
  39. package/dist/react/FilteredCollection.d.ts +134 -0
  40. package/dist/react/FilteredCollection.js +134 -0
  41. package/dist/react/Product.d.ts +43 -18
  42. package/dist/react/Product.js +43 -18
  43. package/dist/react/ProductActions.d.ts +30 -0
  44. package/dist/react/ProductActions.js +30 -0
  45. package/dist/react/ProductModifiers.d.ts +172 -0
  46. package/dist/react/ProductModifiers.js +172 -0
  47. package/dist/react/ProductVariantSelector.d.ts +118 -0
  48. package/dist/react/ProductVariantSelector.js +118 -0
  49. package/dist/react/ProductsList.d.ts +107 -16
  50. package/dist/react/ProductsList.js +101 -16
  51. package/dist/react/RelatedProducts.d.ts +55 -0
  52. package/dist/react/RelatedProducts.js +55 -0
  53. package/dist/react/SelectedVariant.d.ts +59 -0
  54. package/dist/react/SelectedVariant.js +59 -0
  55. package/dist/react/SocialSharing.d.ts +82 -0
  56. package/dist/react/SocialSharing.js +82 -0
  57. package/dist/react/Sort.d.ts +22 -0
  58. package/dist/react/Sort.js +22 -0
  59. package/dist/services/category-service.d.ts +87 -0
  60. package/dist/services/category-service.js +87 -0
  61. package/dist/services/collection-service.d.ts +89 -0
  62. package/dist/services/collection-service.js +89 -0
  63. package/dist/services/product-service.d.ts +76 -0
  64. package/dist/services/product-service.js +76 -0
  65. package/dist/services/products-list-service.d.ts +93 -0
  66. package/dist/services/products-list-service.js +93 -0
  67. package/dist/services/related-products-service.d.ts +75 -0
  68. package/dist/services/related-products-service.js +75 -0
  69. package/package.json +1 -1
@@ -44,6 +44,81 @@ export const RelatedProductsService = implementService.withConfig()(RelatedProdu
44
44
  refreshRelatedProducts,
45
45
  };
46
46
  });
47
+ /**
48
+ * Loads related products service configuration for SSR initialization.
49
+ * This function is designed to be used during Server-Side Rendering (SSR) to create
50
+ * configuration that tells the RelatedProductsService which product to load related products for.
51
+ * Unlike other loaders, this creates configuration rather than fetching data during SSR.
52
+ *
53
+ * @param productId The ID of the product to find related products for
54
+ * @param limit Optional number of related products to load (default: 4)
55
+ * @returns Promise that resolves to RelatedProductsServiceConfig
56
+ *
57
+ * @example
58
+ * ```astro
59
+ * ---
60
+ * // Astro page example - pages/product/[slug].astro
61
+ * import { loadRelatedProductsServiceConfig } from '@wix/stores/services';
62
+ * import { RelatedProducts } from '@wix/stores/components';
63
+ *
64
+ * // Create related products config for a specific product
65
+ * const relatedProductsConfig = await loadRelatedProductsServiceConfig(
66
+ * 'product-id-123',
67
+ * 6
68
+ * );
69
+ * ---
70
+ *
71
+ * <RelatedProducts.Root relatedProductsConfig={relatedProductsConfig}>
72
+ * <RelatedProducts.List>
73
+ * {({ products, isLoading }) => (
74
+ * <div>
75
+ * {isLoading ? 'Loading...' : `${products.length} related products`}
76
+ * </div>
77
+ * )}
78
+ * </RelatedProducts.List>
79
+ * </RelatedProducts.Root>
80
+ * ```
81
+ *
82
+ * @example
83
+ * ```tsx
84
+ * // Next.js page example - pages/product/[slug].tsx
85
+ * import { GetServerSideProps } from 'next';
86
+ * import { loadRelatedProductsServiceConfig } from '@wix/stores/services';
87
+ * import { RelatedProducts } from '@wix/stores/components';
88
+ *
89
+ * interface ProductPageProps {
90
+ * relatedProductsConfig: Awaited<ReturnType<typeof loadRelatedProductsServiceConfig>>;
91
+ * }
92
+ *
93
+ * export const getServerSideProps: GetServerSideProps<ProductPageProps> = async () => {
94
+ * // Create related products config for a specific product
95
+ * const relatedProductsConfig = await loadRelatedProductsServiceConfig(
96
+ * 'product-id-123',
97
+ * 6
98
+ * );
99
+ *
100
+ * return {
101
+ * props: {
102
+ * relatedProductsConfig,
103
+ * },
104
+ * };
105
+ * };
106
+ *
107
+ * export default function ProductPage({ relatedProductsConfig }: ProductPageProps) {
108
+ * return (
109
+ * <RelatedProducts.Root relatedProductsConfig={relatedProductsConfig}>
110
+ * <RelatedProducts.List>
111
+ * {({ products, isLoading }) => (
112
+ * <div>
113
+ * {isLoading ? 'Loading...' : `${products.length} related products`}
114
+ * </div>
115
+ * )}
116
+ * </RelatedProducts.List>
117
+ * </RelatedProducts.Root>
118
+ * );
119
+ * }
120
+ * ```
121
+ */
47
122
  export async function loadRelatedProductsServiceConfig(productId, limit = 4) {
48
123
  return {
49
124
  productId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/headless-stores",
3
- "version": "0.0.29",
3
+ "version": "0.0.31",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "prebuild": "cd ../media && yarn build && cd ../ecom && yarn build",