@shopbb/helium 0.6.3 → 0.7.0

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 (81) hide show
  1. package/dist/components/AddToCartButton.d.ts +17 -22
  2. package/dist/components/AddToCartButton.d.ts.map +1 -1
  3. package/dist/components/AddToCartButton.js +8 -45
  4. package/dist/components/AddToCartButton.js.map +1 -1
  5. package/dist/components/AddressForm.d.ts +42 -18
  6. package/dist/components/AddressForm.d.ts.map +1 -1
  7. package/dist/components/AddressForm.js +23 -20
  8. package/dist/components/AddressForm.js.map +1 -1
  9. package/dist/components/AddressList.d.ts +34 -17
  10. package/dist/components/AddressList.d.ts.map +1 -1
  11. package/dist/components/AddressList.js +7 -21
  12. package/dist/components/AddressList.js.map +1 -1
  13. package/dist/components/AddressPicker.d.ts +14 -16
  14. package/dist/components/AddressPicker.d.ts.map +1 -1
  15. package/dist/components/AddressPicker.js +10 -26
  16. package/dist/components/AddressPicker.js.map +1 -1
  17. package/dist/components/AnalyticsProvider.d.ts +5 -2
  18. package/dist/components/AnalyticsProvider.d.ts.map +1 -1
  19. package/dist/components/AnalyticsProvider.js +13 -11
  20. package/dist/components/AnalyticsProvider.js.map +1 -1
  21. package/dist/components/BuyNowButton.d.ts +7 -24
  22. package/dist/components/BuyNowButton.d.ts.map +1 -1
  23. package/dist/components/BuyNowButton.js +9 -43
  24. package/dist/components/BuyNowButton.js.map +1 -1
  25. package/dist/components/CartCheckoutButton.d.ts +10 -21
  26. package/dist/components/CartCheckoutButton.d.ts.map +1 -1
  27. package/dist/components/CartCheckoutButton.js +6 -11
  28. package/dist/components/CartCheckoutButton.js.map +1 -1
  29. package/dist/components/CartCost.d.ts +15 -23
  30. package/dist/components/CartCost.d.ts.map +1 -1
  31. package/dist/components/CartCost.js +1 -3
  32. package/dist/components/CartCost.js.map +1 -1
  33. package/dist/components/CartForm.d.ts +30 -102
  34. package/dist/components/CartForm.d.ts.map +1 -1
  35. package/dist/components/CartForm.js +32 -172
  36. package/dist/components/CartForm.js.map +1 -1
  37. package/dist/components/DiscountComponents.d.ts +67 -17
  38. package/dist/components/DiscountComponents.d.ts.map +1 -1
  39. package/dist/components/DiscountComponents.js +28 -74
  40. package/dist/components/DiscountComponents.js.map +1 -1
  41. package/dist/components/DiscountSelector.d.ts +50 -15
  42. package/dist/components/DiscountSelector.d.ts.map +1 -1
  43. package/dist/components/DiscountSelector.js +16 -44
  44. package/dist/components/DiscountSelector.js.map +1 -1
  45. package/dist/components/hooks/useOptimisticCart.d.ts +36 -37
  46. package/dist/components/hooks/useOptimisticCart.d.ts.map +1 -1
  47. package/dist/components/hooks/useOptimisticCart.js +95 -127
  48. package/dist/components/hooks/useOptimisticCart.js.map +1 -1
  49. package/dist/components/index.d.ts +24 -45
  50. package/dist/components/index.d.ts.map +1 -1
  51. package/dist/components/index.js +21 -37
  52. package/dist/components/index.js.map +1 -1
  53. package/dist/createCartHandler.d.ts.map +1 -1
  54. package/dist/createCartHandler.js +8 -1
  55. package/dist/createCartHandler.js.map +1 -1
  56. package/dist/index.d.ts +0 -2
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +0 -1
  59. package/dist/index.js.map +1 -1
  60. package/package.json +4 -10
  61. package/src/components/AddToCartButton.tsx +34 -92
  62. package/src/components/AddressForm.tsx +56 -26
  63. package/src/components/AddressList.tsx +42 -33
  64. package/src/components/AddressPicker.tsx +19 -29
  65. package/src/components/AnalyticsProvider.tsx +18 -13
  66. package/src/components/BuyNowButton.tsx +28 -93
  67. package/src/components/CartCheckoutButton.tsx +16 -33
  68. package/src/components/CartCost.tsx +16 -28
  69. package/src/components/CartForm.tsx +87 -231
  70. package/src/components/DiscountComponents.tsx +94 -100
  71. package/src/components/DiscountSelector.tsx +68 -49
  72. package/src/components/hooks/useOptimisticCart.ts +122 -156
  73. package/src/components/index.ts +51 -99
  74. package/src/createCartHandler.ts +10 -1
  75. package/src/index.ts +0 -2
  76. /package/src/components/{AddressBookProvider.tsx → AddressBookProvider.tsx.deleted-0.7} +0 -0
  77. /package/src/components/{CartLineQuantityAdjustButton.tsx → CartLineQuantityAdjustButton.tsx.deleted-0.7} +0 -0
  78. /package/src/components/{CartProvider.tsx → CartProvider.tsx.deleted-0.7} +0 -0
  79. /package/src/components/{DiscountProvider.tsx → DiscountProvider.tsx.deleted-0.7} +0 -0
  80. /package/src/components/hooks/{useMounted.ts → useMounted.ts.deleted-0.7} +0 -0
  81. /package/src/{handleCartFormAction.ts → handleCartFormAction.ts.deleted-0.7} +0 -0
@@ -1,146 +1,114 @@
1
1
  /**
2
- * useOptimisticCart — 对齐 Hydrogen React 同名 hook
2
+ * useOptimisticCart — 严格对齐 Shopify Hydrogen
3
3
  *
4
- * 接受 actualCart(来自 CartProvider),返回一个"叠加了所有 pending mutation"
5
- * 的 cart 视图。让 UI 在网络回来之前立刻反应用户操作(数量+1 / 删除等)。
4
+ * 源文件参考:packages/hydrogen/src/cart/optimistic/useOptimisticCart.tsx
6
5
  *
7
- * const { cart: actualCart } = useCart();
8
- * const cart = useOptimisticCart(actualCart);
9
- * // cart 看起来已经"立刻应用了",但 fetcher 还在跑后端
6
+ * 核心:用 RR7 `useFetchers()` 拿当前所有 in-flight fetcher,遍历它们的 formData
7
+ * CartForm.getFormInput 解析出 action/inputs,合并到 actualCart 上。
10
8
  *
11
- * 实现:
12
- * - <CartForm> submit 时把 pending action 注册到模块内 store
13
- * - 完成后从 store 摘掉
14
- * - useOptimisticCart 订阅 store,把 actualCart 复制一份 + 应用所有 pending
9
+ * 用法:
10
+ * const data = useLoaderData<typeof loader>();
11
+ * const cart = useOptimisticCart(data.cart);
12
+ * // cart 包含 isOptimistic 字段、cart.lines 包含 in-flight 添加的 line(也带 isOptimistic)
15
13
  *
16
- * 简化点(vs Hydrogen 完整实现):
17
- * - 只支持 LinesAdd / LinesUpdate / LinesRemove(足够 cart 主流操作)
18
- * - DiscountCodesUpdate / NoteUpdate 等不做 optimistic(这些在网络层用 applyCart 兜底)
19
- * - 不持久化(页面刷新清空)
14
+ * 与之前 helium 0.6.x 区别:
15
+ * - 删除自造 pendingStore 全局变量
16
+ * - 直接用 RR7 useFetchers()
20
17
  */
21
- import * as React from 'react';
22
- import { useCartOptional } from '../CartProvider';
23
- // 关键:snapshot 必须是稳定引用,否则 useSyncExternalStore 每次比对都觉得变了 →
24
- // 无限 re-render(React #185)+ hydration mismatch(#418/#423)
25
- const EMPTY_SNAPSHOT = [];
26
- const pendingStore = {
27
- items: new Map(),
28
- listeners: new Set(),
29
- cachedSnapshot: EMPTY_SNAPSHOT,
30
- add(m) {
31
- this.items.set(m.id, m);
32
- this.cachedSnapshot = Array.from(this.items.values());
33
- this.notify();
34
- },
35
- remove(id) {
36
- if (this.items.delete(id)) {
37
- this.cachedSnapshot = this.items.size === 0 ? EMPTY_SNAPSHOT : Array.from(this.items.values());
38
- this.notify();
39
- }
40
- },
41
- list() {
42
- // 返回稳定引用(只在 add/remove 时改变)— 满足 useSyncExternalStore 契约
43
- return this.cachedSnapshot;
44
- },
45
- subscribe(fn) {
46
- this.listeners.add(fn);
47
- return () => { this.listeners.delete(fn); };
48
- },
49
- notify() {
50
- for (const fn of this.listeners)
51
- fn();
52
- },
53
- };
18
+ import { useFetchers } from 'react-router';
19
+ import { CartForm } from '../CartForm';
54
20
  /**
55
- * Internal: CartForm 提交时调用,注册一个 pending mutation。返回 unregister。
21
+ * optimistic line 一个临时 id。Hydrogen 用 `gid://shopify/CartLine/optimistic-<variantId>`。
22
+ * 我们 shopbb 也用类似前缀。
56
23
  */
57
- export function __registerPendingMutation(m) {
58
- pendingStore.add(m);
59
- return () => pendingStore.remove(m.id);
24
+ function getOptimisticLineId(variantId) {
25
+ return `optimistic-${variantId}`;
60
26
  }
61
- export function useOptimisticCart(actualCart) {
62
- // 订阅 pending store 重渲染
63
- const subscribe = React.useCallback((cb) => pendingStore.subscribe(cb), []);
64
- const getSnapshot = React.useCallback(() => pendingStore.list(), []);
65
- const pendings = React.useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
66
- // 如果没有 pending,CartProvider 内部的 cart 已经是最新(因为 applyCart 同步过)
67
- const fallback = useCartOptional();
68
- const baseCart = (actualCart ?? fallback?.cart);
69
- return React.useMemo(() => {
70
- if (!baseCart) {
71
- // 如果没有 actual cart 但有 pending LinesAdd 模拟一个空 cart + 即将添加的行
72
- if (pendings.length === 0)
73
- return null;
74
- const optimisticLines = [];
75
- for (const p of pendings) {
76
- if (p.action === 'LinesAdd' && Array.isArray(p.inputs?.lines)) {
77
- for (const ln of p.inputs.lines) {
78
- optimisticLines.push({
79
- id: `__optimistic_${p.id}_${ln.merchandiseId}`,
80
- quantity: ln.quantity ?? 1,
81
- merchandise: { id: ln.merchandiseId },
82
- isOptimistic: true,
83
- });
84
- }
85
- }
86
- }
87
- if (optimisticLines.length === 0)
88
- return null;
89
- return {
90
- isOptimistic: true,
91
- totalQuantity: optimisticLines.reduce((s, l) => s + l.quantity, 0),
92
- lines: { nodes: optimisticLines },
93
- };
27
+ function isOptimisticLineId(id) {
28
+ return id.startsWith('optimistic-');
29
+ }
30
+ export function useOptimisticCart(cart) {
31
+ const fetchers = useFetchers();
32
+ if (!fetchers || !fetchers.length) {
33
+ return cart;
34
+ }
35
+ // structuredClone 拷贝 cart(不污染 useLoaderData 的引用)
36
+ const optimisticCart = cart?.lines
37
+ ? (typeof structuredClone === 'function' ? structuredClone(cart) : JSON.parse(JSON.stringify(cart)))
38
+ : { lines: { nodes: [] } };
39
+ const cartLines = optimisticCart.lines?.nodes ?? [];
40
+ let isOptimistic = false;
41
+ for (const { formData } of fetchers) {
42
+ if (!formData)
43
+ continue;
44
+ let cartFormData;
45
+ try {
46
+ cartFormData = CartForm.getFormInput(formData);
47
+ }
48
+ catch {
49
+ continue;
94
50
  }
95
- if (pendings.length === 0)
96
- return baseCart;
97
- // 复制 lines(不深拷贝整个 cart — 只动 lines 节点列表)
98
- const linesNodes = (baseCart.lines?.nodes ?? []).slice();
99
- for (const p of pendings) {
100
- if (p.action === 'LinesAdd' && Array.isArray(p.inputs?.lines)) {
101
- for (const ln of p.inputs.lines) {
102
- // 简化:若已有相同 merchandiseId 累加,否则追加
103
- const idx = linesNodes.findIndex((l) => l.merchandise?.id === ln.merchandiseId);
104
- if (idx >= 0) {
105
- linesNodes[idx] = {
106
- ...linesNodes[idx],
107
- quantity: linesNodes[idx].quantity + (ln.quantity ?? 1),
108
- isOptimistic: true,
109
- };
110
- }
111
- else {
112
- linesNodes.push({
113
- id: `__optimistic_${p.id}_${ln.merchandiseId}`,
114
- quantity: ln.quantity ?? 1,
115
- merchandise: { id: ln.merchandiseId },
116
- isOptimistic: true,
117
- });
118
- }
51
+ if (!cartFormData?.action)
52
+ continue;
53
+ if (cartFormData.action === CartForm.ACTIONS.LinesAdd) {
54
+ const lines = cartFormData.inputs?.lines ?? [];
55
+ for (const input of lines) {
56
+ if (!input.selectedVariant) {
57
+ // 没传 selectedVariant,无法 optimistic 显示具体信息 — Hydrogen 的约束相同
58
+ continue;
59
+ }
60
+ const variantId = input.selectedVariant?.id;
61
+ const existingLine = cartLines.find((line) => line.merchandise?.id === variantId);
62
+ isOptimistic = true;
63
+ if (existingLine) {
64
+ existingLine.quantity = (existingLine.quantity || 1) + (input.quantity || 1);
65
+ existingLine.isOptimistic = true;
66
+ }
67
+ else {
68
+ cartLines.unshift({
69
+ id: getOptimisticLineId(variantId),
70
+ merchandise: input.selectedVariant,
71
+ quantity: input.quantity || 1,
72
+ isOptimistic: true,
73
+ });
119
74
  }
120
75
  }
121
- else if (p.action === 'LinesUpdate' && Array.isArray(p.inputs?.lines)) {
122
- for (const ln of p.inputs.lines) {
123
- const idx = linesNodes.findIndex((l) => l.id === ln.id);
124
- if (idx >= 0) {
125
- linesNodes[idx] = { ...linesNodes[idx], quantity: ln.quantity ?? linesNodes[idx].quantity, isOptimistic: true };
126
- }
76
+ }
77
+ else if (cartFormData.action === CartForm.ACTIONS.LinesRemove) {
78
+ const lineIds = cartFormData.inputs?.lineIds ?? [];
79
+ for (const lineId of lineIds) {
80
+ const idx = cartLines.findIndex((line) => line.id === lineId);
81
+ if (idx !== -1) {
82
+ if (isOptimisticLineId(cartLines[idx].id))
83
+ continue;
84
+ cartLines.splice(idx, 1);
85
+ isOptimistic = true;
127
86
  }
128
87
  }
129
- else if (p.action === 'LinesRemove' && Array.isArray(p.inputs?.lineIds)) {
130
- for (const id of p.inputs.lineIds) {
131
- const idx = linesNodes.findIndex((l) => l.id === id);
132
- if (idx >= 0)
133
- linesNodes.splice(idx, 1);
88
+ }
89
+ else if (cartFormData.action === CartForm.ACTIONS.LinesUpdate) {
90
+ const lines = cartFormData.inputs?.lines ?? [];
91
+ for (const line of lines) {
92
+ const idx = cartLines.findIndex((optimisticLine) => line.id === optimisticLine.id);
93
+ if (idx > -1) {
94
+ if (isOptimisticLineId(cartLines[idx].id))
95
+ continue;
96
+ cartLines[idx].quantity = line.quantity;
97
+ if (cartLines[idx].quantity === 0)
98
+ cartLines.splice(idx, 1);
99
+ isOptimistic = true;
134
100
  }
135
101
  }
136
102
  }
137
- const totalQuantity = linesNodes.reduce((s, l) => s + l.quantity, 0);
138
- return {
139
- ...baseCart,
140
- isOptimistic: true,
141
- totalQuantity,
142
- lines: { ...baseCart.lines, nodes: linesNodes },
143
- };
144
- }, [baseCart, pendings]);
103
+ }
104
+ if (isOptimistic)
105
+ optimisticCart.isOptimistic = isOptimistic;
106
+ optimisticCart.totalQuantity = cartLines.reduce((sum, line) => sum + (line.quantity || 0), 0);
107
+ optimisticCart.lines = { ...optimisticCart.lines, nodes: cartLines };
108
+ return optimisticCart;
109
+ }
110
+ // API 兼容(pendingStore 已废弃)
111
+ export function __registerPendingMutation() {
112
+ return () => { };
145
113
  }
146
114
  //# sourceMappingURL=useOptimisticCart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOptimisticCart.js","sourceRoot":"","sources":["../../../src/components/hooks/useOptimisticCart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useOptimisticCart.js","sourceRoot":"","sources":["../../../src/components/hooks/useOptimisticCart.ts"],"names":[],"mappings":"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"}
@@ -1,76 +1,55 @@
1
1
  /**
2
2
  * @shopbb/helium/components — 商家用 React 组件
3
3
  *
4
- * 用法:
5
- * import {
6
- * ShopProvider, CartProvider, AnalyticsProvider,
7
- * useShop, useCart, useAnalytics,
8
- * Money, Image, ProductPrice,
9
- * AddToCartButton, CartLineQuantityAdjustButton,
10
- * VariantSelector, ProductOptionsProvider, useProductOptions,
11
- * Analytics,
12
- * } from '@shopbb/helium/components';
13
- *
14
- * 设计原则:
15
- * - 无样式:组件只管行为 + 语义化 DOM,样式商家自己写
16
- * - data-* 钩子:方便选择器
17
- * - 对齐 Shopify Hydrogen 同名组件的 API,迁移成本低
18
- * - Provider 链:<ShopProvider> > <CartProvider> > <AnalyticsProvider> > App
19
- * 组件优先从 Provider 拿;Provider 缺省时回退到 props 或 noop
4
+ * 0.7 起严格对齐 Shopify Hydrogen 设计原则:
5
+ * - 数据流:服务端 loader → useLoaderData → 组件 props(不通过 Provider)
6
+ * - mutation:<CartForm> + RR7 useFetcher(自动 revalidate loader)
7
+ * - 删除 CartProvider / DiscountProvider / AddressBookProvider
20
8
  */
21
9
  export { ShopProvider, useShop, useShopOptional } from './ShopProvider';
22
10
  export type { ShopContextValue, ShopProviderProps } from './ShopProvider';
23
11
  export { ShopProvider as ShopifyProvider } from './ShopProvider';
24
12
  export type { ShopProviderProps as ShopifyProviderProps } from './ShopProvider';
25
- export { CartProvider, useCart, useCartOptional } from './CartProvider';
26
- export type { Cart, CartLine, CartLineMerchandise, CartStatus, CartUserError, CartContextValue, CartProviderProps, } from './CartProvider';
27
13
  export { ProductOptionsProvider, useProductOptions, } from './ProductOptionsProvider';
28
14
  export type { ProductOptionsContextValue, ProductOptionsProviderProps, ProductOptionItem, } from './ProductOptionsProvider';
29
15
  export { AnalyticsProvider, useAnalytics, Analytics } from './AnalyticsProvider';
30
16
  export type { AnalyticsEvent, AnalyticsContextValue, AnalyticsProviderProps } from './AnalyticsProvider';
17
+ export { CartLineProvider, useCartLine, useCartLineOptional } from './CartLineProvider';
18
+ export type { CartLineProviderProps, CartLineLike } from './CartLineProvider';
31
19
  export { Money } from './Money';
32
20
  export type { MoneyProps, MoneyData, MoneyMeasurement } from './Money';
33
21
  export { Image } from './Image';
34
22
  export type { ImageProps, ImageData } from './Image';
35
23
  export { ProductPrice } from './ProductPrice';
36
24
  export type { ProductPriceProps } from './ProductPrice';
37
- export { AddToCartButton } from './AddToCartButton';
38
- export type { AddToCartButtonProps } from './AddToCartButton';
39
- export { CartLineQuantityAdjustButton } from './CartLineQuantityAdjustButton';
40
- export type { CartLineQuantityAdjustButtonProps } from './CartLineQuantityAdjustButton';
41
25
  export { VariantSelector } from './VariantSelector';
42
26
  export type { VariantSelectorProps, VariantSelectorRenderProps, VariantOption, } from './VariantSelector';
43
- export { AddressBookProvider, useAddressBook, useAddressBookOptional, } from './AddressBookProvider';
44
- export type { Address, AddressInput, AddressBookStatus, AddressBookUserError, AddressBookContextValue, AddressBookProviderProps, } from './AddressBookProvider';
45
- export { AddressList } from './AddressList';
46
- export type { AddressListProps, AddressListItemActions } from './AddressList';
47
- export { AddressForm } from './AddressForm';
48
- export type { AddressFormProps, AddressFormI18n } from './AddressForm';
49
- export { AddressPicker } from './AddressPicker';
50
- export type { AddressPickerProps } from './AddressPicker';
51
- export { DiscountProvider, useDiscounts, useDiscountsOptional, useProductDiscounts, } from './DiscountProvider';
52
- export type { Discount, DiscountClaim, DiscountValueType, DiscountValuePercentage, DiscountValueAmount, DiscountValueFreeShipping, CartDiscountCode, CartDiscountAllocation, DiscountUserError, DiscountContextValue, DiscountProviderProps, } from './DiscountProvider';
53
- export { AppliedDiscountList, ClaimableDiscountList, DiscountClaimButton, MyDiscountList, } from './DiscountComponents';
54
- export type { AppliedDiscountListProps, ClaimableDiscountListProps, DiscountClaimButtonProps, MyDiscountListProps, } from './DiscountComponents';
55
- export { DiscountSelector } from './DiscountSelector';
56
- export type { DiscountSelectorProps } from './DiscountSelector';
57
- export { useMounted } from './hooks/useMounted';
58
- export { useOptimisticCart } from './hooks/useOptimisticCart';
59
- export type { OptimisticCart, OptimisticCartLine, PendingMutation } from './hooks/useOptimisticCart';
60
- export { useMoney } from './hooks/useMoney';
61
- export type { MoneyV2, MoneyParts } from './hooks/useMoney';
62
- export { CartForm, CART_FORM_ACTIONS, useFetcher } from './CartForm';
63
- export type { CartFormProps, CartFormInput, CartFormFetcher, CartFormAction, CartLineInput, CartLineUpdateInput, } from './CartForm';
64
- export { CartLineProvider, useCartLine, useCartLineOptional } from './CartLineProvider';
65
- export type { CartLineProviderProps, CartLineLike } from './CartLineProvider';
66
27
  export { CartLineQuantity } from './CartLineQuantity';
67
28
  export type { CartLineQuantityProps } from './CartLineQuantity';
68
29
  export { CartCost } from './CartCost';
69
30
  export type { CartCostProps, MoneyValue } from './CartCost';
70
31
  export { CartCheckoutButton } from './CartCheckoutButton';
71
32
  export type { CartCheckoutButtonProps } from './CartCheckoutButton';
33
+ export { CartForm, CART_FORM_ACTIONS, useFetcher } from './CartForm';
34
+ export type { CartFormProps, CartFormInput, CartFormFetcher, CartFormAction, CartLineInput, CartLineUpdateInput, FetcherWithComponents, } from './CartForm';
35
+ export { AddToCartButton } from './AddToCartButton';
36
+ export type { AddToCartButtonProps } from './AddToCartButton';
72
37
  export { BuyNowButton } from './BuyNowButton';
73
38
  export type { BuyNowButtonProps } from './BuyNowButton';
39
+ export { useOptimisticCart } from './hooks/useOptimisticCart';
40
+ export type { OptimisticCart, OptimisticCartLine, PendingMutation } from './hooks/useOptimisticCart';
41
+ export { useMoney } from './hooks/useMoney';
42
+ export type { MoneyV2, MoneyParts } from './hooks/useMoney';
43
+ export { AddressList } from './AddressList';
44
+ export type { AddressListProps, AddressListItemActions, Address } from './AddressList';
45
+ export { AddressForm } from './AddressForm';
46
+ export type { AddressFormProps, AddressFormI18n, AddressInput, AddressBookUserError, AddressFormSubmitResult } from './AddressForm';
47
+ export { AddressPicker } from './AddressPicker';
48
+ export type { AddressPickerProps } from './AddressPicker';
49
+ export { AppliedDiscountList, ClaimableDiscountList, DiscountClaimButton, MyDiscountList, } from './DiscountComponents';
50
+ export type { AppliedDiscountListProps, ClaimableDiscountListProps, DiscountClaimButtonProps, MyDiscountListProps, Discount, DiscountClaim, DiscountValueType, DiscountValuePercentage, DiscountValueAmount, DiscountValueFreeShipping, DiscountAllocation, } from './DiscountComponents';
51
+ export { DiscountSelector } from './DiscountSelector';
52
+ export type { DiscountSelectorProps, AppliedDiscountClaim, } from './DiscountSelector';
74
53
  export { RichText } from './RichText';
75
54
  export type { RichTextProps, RichTextNode, RichTextComponents } from './RichText';
76
55
  export { Pagination, getPaginationVariables } from './Pagination';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -1,58 +1,42 @@
1
1
  /**
2
2
  * @shopbb/helium/components — 商家用 React 组件
3
3
  *
4
- * 用法:
5
- * import {
6
- * ShopProvider, CartProvider, AnalyticsProvider,
7
- * useShop, useCart, useAnalytics,
8
- * Money, Image, ProductPrice,
9
- * AddToCartButton, CartLineQuantityAdjustButton,
10
- * VariantSelector, ProductOptionsProvider, useProductOptions,
11
- * Analytics,
12
- * } from '@shopbb/helium/components';
13
- *
14
- * 设计原则:
15
- * - 无样式:组件只管行为 + 语义化 DOM,样式商家自己写
16
- * - data-* 钩子:方便选择器
17
- * - 对齐 Shopify Hydrogen 同名组件的 API,迁移成本低
18
- * - Provider 链:<ShopProvider> > <CartProvider> > <AnalyticsProvider> > App
19
- * 组件优先从 Provider 拿;Provider 缺省时回退到 props 或 noop
4
+ * 0.7 起严格对齐 Shopify Hydrogen 设计原则:
5
+ * - 数据流:服务端 loader → useLoaderData → 组件 props(不通过 Provider)
6
+ * - mutation:<CartForm> + RR7 useFetcher(自动 revalidate loader)
7
+ * - 删除 CartProvider / DiscountProvider / AddressBookProvider
20
8
  */
21
- // Providers + hooks
9
+ // Providers + hooks(保留:仅 Shop / ProductOptions / CartLine / Analytics,对齐 Hydrogen)
22
10
  export { ShopProvider, useShop, useShopOptional } from './ShopProvider';
23
- // Hydrogen-compatible alias: <ShopifyProvider> 在我们叫 <ShopProvider>,提供别名让 Hydrogen 代码无痛迁移
24
11
  export { ShopProvider as ShopifyProvider } from './ShopProvider';
25
- export { CartProvider, useCart, useCartOptional } from './CartProvider';
26
12
  export { ProductOptionsProvider, useProductOptions, } from './ProductOptionsProvider';
27
13
  export { AnalyticsProvider, useAnalytics, Analytics } from './AnalyticsProvider';
14
+ // CartLine context(Hydrogen 标准:cart line 子组件用 useCartLine 拿当前 line)
15
+ export { CartLineProvider, useCartLine, useCartLineOptional } from './CartLineProvider';
28
16
  // 展示型组件
29
17
  export { Money } from './Money';
30
18
  export { Image } from './Image';
31
19
  export { ProductPrice } from './ProductPrice';
32
- export { AddToCartButton } from './AddToCartButton';
33
- export { CartLineQuantityAdjustButton } from './CartLineQuantityAdjustButton';
34
20
  export { VariantSelector } from './VariantSelector';
35
- // 地址簿(W4a)
36
- export { AddressBookProvider, useAddressBook, useAddressBookOptional, } from './AddressBookProvider';
21
+ export { CartLineQuantity } from './CartLineQuantity';
22
+ export { CartCost } from './CartCost';
23
+ export { CartCheckoutButton } from './CartCheckoutButton';
24
+ // CartForm + useFetcher 透传(Hydrogen 标准)
25
+ export { CartForm, CART_FORM_ACTIONS, useFetcher } from './CartForm';
26
+ // 按钮组件(内部用 CartForm)
27
+ export { AddToCartButton } from './AddToCartButton';
28
+ export { BuyNowButton } from './BuyNowButton';
29
+ // useOptimisticCart — 用 RR7 useFetchers() 实现(对齐 Hydrogen)
30
+ export { useOptimisticCart } from './hooks/useOptimisticCart';
31
+ // useMoney hook
32
+ export { useMoney } from './hooks/useMoney';
33
+ // 地址簿(接 props,不再用 Provider)
37
34
  export { AddressList } from './AddressList';
38
35
  export { AddressForm } from './AddressForm';
39
36
  export { AddressPicker } from './AddressPicker';
40
- // 优惠券(W4b
41
- export { DiscountProvider, useDiscounts, useDiscountsOptional, useProductDiscounts, } from './DiscountProvider';
37
+ // 优惠券(接 props,不再用 Provider
42
38
  export { AppliedDiscountList, ClaimableDiscountList, DiscountClaimButton, MyDiscountList, } from './DiscountComponents';
43
39
  export { DiscountSelector } from './DiscountSelector';
44
- // SSR / hydrate 辅助 hook
45
- export { useMounted } from './hooks/useMounted';
46
- export { useOptimisticCart } from './hooks/useOptimisticCart';
47
- export { useMoney } from './hooks/useMoney';
48
- // CartForm — Hydrogen-compatible form-based cart mutation API
49
- export { CartForm, CART_FORM_ACTIONS, useFetcher } from './CartForm';
50
- // Cart line context + 子组件
51
- export { CartLineProvider, useCartLine, useCartLineOptional } from './CartLineProvider';
52
- export { CartLineQuantity } from './CartLineQuantity';
53
- export { CartCost } from './CartCost';
54
- export { CartCheckoutButton } from './CartCheckoutButton';
55
- export { BuyNowButton } from './BuyNowButton';
56
40
  // Rich text
57
41
  export { RichText } from './RichText';
58
42
  // Pagination
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAExE,yFAAyF;AACzF,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAWxE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGjF,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAG9E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD,WAAW;AACX,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAU/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,WAAW;AACX,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAe5B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,wBAAwB;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,8DAA8D;AAC9D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMrE,0BAA0B;AAC1B,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAExF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,OAAO;AACP,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mFAAmF;AACnF,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGjF,oEAAoE;AACpE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGxF,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,wCAAwC;AACxC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMrE,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,0DAA0D;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,gBAAgB;AAChB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,4BAA4B;AAC5B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAe9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,OAAO;AACP,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCartHandler.d.ts","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,SAAS,CAAC;AAEjB,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,ktBAiCjC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA0M1E"}
1
+ {"version":3,"file":"createCartHandler.d.ts","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,SAAS,CAAC;AAEjB,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,ktBAiCjC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAmN1E"}
@@ -46,9 +46,16 @@ export const DEFAULT_CART_FRAGMENT = /* GraphQL */ `
46
46
  }
47
47
  `;
48
48
  export function createCartHandler(options) {
49
- const { storefront, getCartId, setCartId: rawSetId, responseHeaders } = options;
49
+ const { storefront, getCartId: rawGetCartId, setCartId: rawSetId, responseHeaders } = options;
50
+ // Stateful cart id: 在 createCart 后即时缓存,让 get() 拿到。
51
+ // 不然 RR7 action 后 loader revalidate 时 request.headers 没新 cookie,会丢 cart。
52
+ let currentCartId = rawGetCartId();
53
+ function getCartId() {
54
+ return currentCartId || rawGetCartId();
55
+ }
50
56
  // Set the cart ID (delegate to options.setCartId, which writes Set-Cookie)
51
57
  function setCartId(cartId) {
58
+ currentCartId = cartId;
52
59
  rawSetId(cartId, responseHeaders);
53
60
  }
54
61
  // ----- GraphQL operations -----
@@ -1 +1 @@
1
- {"version":3,"file":"createCartHandler.js","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createCartHandler.js","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -17,8 +17,6 @@ export { createStorefrontClient } from './createStorefrontClient';
17
17
  export { createCartHandler, DEFAULT_CART_FRAGMENT } from './createCartHandler';
18
18
  export { cartGetIdDefault, cartSetIdDefault } from './cart-id';
19
19
  export type { CartSetIdOptions } from './cart-id';
20
- export { handleCartFormAction } from './handleCartFormAction';
21
- export type { HandleCartFormActionOptions } from './handleCartFormAction';
22
20
  export { CacheNone, CacheShort, CacheLong, CacheCustom } from './cache';
23
21
  export { createWithCache, InMemoryCache } from './cache/withCache';
24
22
  export type { WithCache, WithCacheOptions, CacheKey } from './cache/withCache';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,YAAY,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,YAAY,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAClH,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACzF,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChE,YAAY,EACV,eAAe,EAAE,iBAAiB,EAAE,sBAAsB,GAC3D,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG9E,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,YAAY,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,YAAY,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAClH,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACzF,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChE,YAAY,EACV,eAAe,EAAE,iBAAiB,EAAE,sBAAsB,GAC3D,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG9E,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -16,7 +16,6 @@ export { createHeliumContext } from './createHeliumContext';
16
16
  export { createStorefrontClient } from './createStorefrontClient';
17
17
  export { createCartHandler, DEFAULT_CART_FRAGMENT } from './createCartHandler';
18
18
  export { cartGetIdDefault, cartSetIdDefault } from './cart-id';
19
- export { handleCartFormAction } from './handleCartFormAction';
20
19
  export { CacheNone, CacheShort, CacheLong, CacheCustom } from './cache';
21
20
  // 服务端工具
22
21
  export { createWithCache, InMemoryCache } from './cache/withCache';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExE,QAAQ;AACR,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAErF,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKhE,KAAK;AACL,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExE,QAAQ;AACR,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAErF,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKhE,KAAK;AACL,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}