@tiledev/sdk-shopify 0.9.1 → 0.10.1
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.
- package/README.md +653 -50
- package/dist/alertSettings.d.ts.map +1 -1
- package/dist/alertSettings.js +2 -0
- package/dist/alertSettings.js.map +1 -1
- package/dist/attribution.d.ts +21 -0
- package/dist/attribution.d.ts.map +1 -1
- package/dist/attribution.js +17 -0
- package/dist/attribution.js.map +1 -1
- package/dist/auth/pkce.d.ts +30 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/pkce.js +128 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/session.d.ts +118 -0
- package/dist/auth/session.d.ts.map +1 -0
- package/dist/auth/session.js +896 -0
- package/dist/auth/session.js.map +1 -0
- package/dist/auth/storeCredit.d.ts +64 -0
- package/dist/auth/storeCredit.d.ts.map +1 -0
- package/dist/auth/storeCredit.js +274 -0
- package/dist/auth/storeCredit.js.map +1 -0
- package/dist/cart.d.ts +25 -1
- package/dist/cart.d.ts.map +1 -1
- package/dist/cart.js +95 -2
- package/dist/cart.js.map +1 -1
- package/dist/cartPolicy.js +4 -4
- package/dist/checkout.d.ts +123 -0
- package/dist/checkout.d.ts.map +1 -0
- package/dist/checkout.js +205 -0
- package/dist/checkout.js.map +1 -0
- package/dist/customer.d.ts.map +1 -1
- package/dist/customer.js +8 -0
- package/dist/customer.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +74 -2
- package/dist/index.js.map +1 -1
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +2 -0
- package/dist/messages.js.map +1 -1
- package/dist/money.d.ts +16 -0
- package/dist/money.d.ts.map +1 -1
- package/dist/money.js +55 -0
- package/dist/money.js.map +1 -1
- package/dist/orders.d.ts +99 -0
- package/dist/orders.d.ts.map +1 -0
- package/dist/orders.js +439 -0
- package/dist/orders.js.map +1 -0
- package/dist/productPage.d.ts +100 -0
- package/dist/productPage.d.ts.map +1 -0
- package/dist/productPage.js +298 -0
- package/dist/productPage.js.map +1 -0
- package/dist/productStore.d.ts +1 -1
- package/dist/productStore.d.ts.map +1 -1
- package/dist/productStore.js +63 -5
- package/dist/productStore.js.map +1 -1
- package/dist/products.d.ts.map +1 -1
- package/dist/products.js +15 -3
- package/dist/products.js.map +1 -1
- package/dist/purchaseRules.d.ts +74 -0
- package/dist/purchaseRules.d.ts.map +1 -0
- package/dist/purchaseRules.js +73 -0
- package/dist/purchaseRules.js.map +1 -0
- package/dist/queries.d.ts +15 -13
- package/dist/queries.d.ts.map +1 -1
- package/dist/queries.js +43 -7
- package/dist/queries.js.map +1 -1
- package/dist/react/ShopifyProvider.d.ts +167 -25
- package/dist/react/ShopifyProvider.d.ts.map +1 -1
- package/dist/react/ShopifyProvider.js +352 -207
- package/dist/react/ShopifyProvider.js.map +1 -1
- package/dist/react/appForeground.d.ts +6 -0
- package/dist/react/appForeground.d.ts.map +1 -0
- package/dist/react/appForeground.js +19 -0
- package/dist/react/appForeground.js.map +1 -0
- package/dist/react/appForeground.native.d.ts +2 -0
- package/dist/react/appForeground.native.d.ts.map +1 -0
- package/dist/react/appForeground.native.js +23 -0
- package/dist/react/appForeground.native.js.map +1 -0
- package/dist/react/index.d.ts +7 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +23 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/tileCreditClient.d.ts +4 -0
- package/dist/react/tileCreditClient.d.ts.map +1 -0
- package/dist/react/tileCreditClient.js +27 -0
- package/dist/react/tileCreditClient.js.map +1 -0
- package/dist/react/useAppDiscountCode.d.ts +19 -0
- package/dist/react/useAppDiscountCode.d.ts.map +1 -0
- package/dist/react/useAppDiscountCode.js +44 -0
- package/dist/react/useAppDiscountCode.js.map +1 -0
- package/dist/react/useCartStoreCredit.d.ts +25 -0
- package/dist/react/useCartStoreCredit.d.ts.map +1 -0
- package/dist/react/useCartStoreCredit.js +292 -0
- package/dist/react/useCartStoreCredit.js.map +1 -0
- package/dist/react/useOrders.d.ts +104 -0
- package/dist/react/useOrders.d.ts.map +1 -0
- package/dist/react/useOrders.js +287 -0
- package/dist/react/useOrders.js.map +1 -0
- package/dist/react/useProduct.d.ts.map +1 -1
- package/dist/react/useProduct.js +1 -9
- package/dist/react/useProduct.js.map +1 -1
- package/dist/react/useProductFeed.d.ts.map +1 -1
- package/dist/react/useProductFeed.js +33 -5
- package/dist/react/useProductFeed.js.map +1 -1
- package/dist/react/useProductPage.d.ts +148 -0
- package/dist/react/useProductPage.d.ts.map +1 -0
- package/dist/react/useProductPage.js +178 -0
- package/dist/react/useProductPage.js.map +1 -0
- package/dist/react/useProductRecommendations.d.ts +27 -0
- package/dist/react/useProductRecommendations.d.ts.map +1 -0
- package/dist/react/useProductRecommendations.js +76 -0
- package/dist/react/useProductRecommendations.js.map +1 -0
- package/dist/react/useStoreCredit.d.ts +58 -0
- package/dist/react/useStoreCredit.d.ts.map +1 -0
- package/dist/react/useStoreCredit.js +209 -0
- package/dist/react/useStoreCredit.js.map +1 -0
- package/dist/react/useTileCredit.d.ts +4 -3
- package/dist/react/useTileCredit.d.ts.map +1 -1
- package/dist/react/useTileCredit.js +63 -55
- package/dist/react/useTileCredit.js.map +1 -1
- package/dist/shopify.d.ts.map +1 -1
- package/dist/shopify.js +2 -0
- package/dist/shopify.js.map +1 -1
- package/dist/storedList.d.ts +27 -0
- package/dist/storedList.d.ts.map +1 -0
- package/dist/storedList.js +152 -0
- package/dist/storedList.js.map +1 -0
- package/dist/tileCredit.d.ts +25 -10
- package/dist/tileCredit.d.ts.map +1 -1
- package/dist/tileCredit.js +97 -45
- package/dist/tileCredit.js.map +1 -1
- package/dist/types.d.ts +407 -34
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/dist/types.js.map +1 -1
- package/dist/variants.d.ts.map +1 -1
- package/dist/variants.js +4 -3
- package/dist/variants.js.map +1 -1
- package/dist/waitlist.d.ts +4 -0
- package/dist/waitlist.d.ts.map +1 -0
- package/dist/waitlist.js +213 -0
- package/dist/waitlist.js.map +1 -0
- package/dist/wishlist.d.ts.map +1 -1
- package/dist/wishlist.js +70 -47
- package/dist/wishlist.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LATEST_ORDER_READ_AGAIN_SECONDS = exports.ORDERS_PAGE_SIZE = void 0;
|
|
4
|
+
exports.useShopper = useShopper;
|
|
5
|
+
exports.useOrders = useOrders;
|
|
6
|
+
exports.useLatestOrderSince = useLatestOrderSince;
|
|
7
|
+
exports.useOrder = useOrder;
|
|
8
|
+
/**
|
|
9
|
+
* The signed-in shopper's orders: `useOrders` for the list, `useOrder` for one order with Buy again.
|
|
10
|
+
* Either sign-in: Shopify's reads the Customer Account API, email and password the Storefront API
|
|
11
|
+
* (`orders.ts`). Signed out, both are empty, with no error, and send nothing.
|
|
12
|
+
*
|
|
13
|
+
* Fixed from production Amber (the audit's §3.13–3.14):
|
|
14
|
+
* - The list pages by cursor; production stopped at 25 and ignored `hasNextPage`.
|
|
15
|
+
* - A refresh keeps what is on screen, and a failed one keeps it and sets `error`; production
|
|
16
|
+
* replaced the list with a spinner on every visit.
|
|
17
|
+
* - A refresh asked for while a read is on its way joins it, so a screen that refreshes on focus
|
|
18
|
+
* doesn't read twice on mount (production did).
|
|
19
|
+
* - Buy again keeps to the stock the store has left (production ignored it).
|
|
20
|
+
*
|
|
21
|
+
* `useLatestOrderSince` (SDK move 6) is the order just placed, for an Order Confirmed page.
|
|
22
|
+
*/
|
|
23
|
+
const react_1 = require("react");
|
|
24
|
+
const shopify_1 = require("../shopify");
|
|
25
|
+
const orders_1 = require("../orders");
|
|
26
|
+
const productPage_1 = require("../productPage");
|
|
27
|
+
const ShopifyProvider_1 = require("./ShopifyProvider");
|
|
28
|
+
/** Orders per page, unless `useOrders({ pageSize })` says otherwise. */
|
|
29
|
+
exports.ORDERS_PAGE_SIZE = 25;
|
|
30
|
+
function sourceFor(customer) {
|
|
31
|
+
return customer.sessionKind === 'shopify'
|
|
32
|
+
? (0, orders_1.customerAccountOrders)(customer.request)
|
|
33
|
+
: (0, orders_1.storefrontOrders)(customer.getAccessToken);
|
|
34
|
+
}
|
|
35
|
+
const toError = (error) => (error instanceof Error ? error : new Error(String(error)));
|
|
36
|
+
/**
|
|
37
|
+
* Whose orders these are: a new value for each session, and for a different customer within one.
|
|
38
|
+
* Null when signed out. The profile arriving after the session began (app open, sign-in) is the same
|
|
39
|
+
* shopper, so it doesn't count; keying on the profile would read everything twice. Also keys
|
|
40
|
+
* `useStoreCreditHistory`.
|
|
41
|
+
*/
|
|
42
|
+
function useShopper(customer) {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
const seen = (0, react_1.useRef)({ kind: null, id: null, count: 0 });
|
|
45
|
+
const kind = customer.loggedIn ? customer.sessionKind : null;
|
|
46
|
+
const id = (_b = (_a = customer.customer) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null;
|
|
47
|
+
const last = seen.current;
|
|
48
|
+
if (kind !== last.kind) {
|
|
49
|
+
last.kind = kind;
|
|
50
|
+
last.id = id;
|
|
51
|
+
last.count += 1;
|
|
52
|
+
}
|
|
53
|
+
else if (id !== null && last.id !== null && id !== last.id) {
|
|
54
|
+
last.id = id;
|
|
55
|
+
last.count += 1;
|
|
56
|
+
}
|
|
57
|
+
else if (id !== null) {
|
|
58
|
+
last.id = id;
|
|
59
|
+
}
|
|
60
|
+
return kind ? `${kind}:${last.count}` : null;
|
|
61
|
+
}
|
|
62
|
+
const emptyList = (owner) => ({
|
|
63
|
+
owner, orders: [], endCursor: null, hasMore: false, answered: false, loadingMore: false, error: null,
|
|
64
|
+
});
|
|
65
|
+
/** The signed-in shopper's orders, newest first, a page at a time. */
|
|
66
|
+
function useOrders(options = {}) {
|
|
67
|
+
var _a;
|
|
68
|
+
const customer = (0, ShopifyProvider_1.useCustomer)();
|
|
69
|
+
const owner = useShopper(customer);
|
|
70
|
+
const customerRef = (0, react_1.useRef)(customer);
|
|
71
|
+
customerRef.current = customer;
|
|
72
|
+
const ownerRef = (0, react_1.useRef)(owner);
|
|
73
|
+
ownerRef.current = owner;
|
|
74
|
+
const pageSizeRef = (0, react_1.useRef)(exports.ORDERS_PAGE_SIZE);
|
|
75
|
+
pageSizeRef.current = Math.max(1, Math.floor((_a = options.pageSize) !== null && _a !== void 0 ? _a : exports.ORDERS_PAGE_SIZE)) || exports.ORDERS_PAGE_SIZE;
|
|
76
|
+
const [stored, setStored] = (0, react_1.useState)(() => emptyList(owner));
|
|
77
|
+
// Another shopper's orders never show, not even for the render before the effect below clears them.
|
|
78
|
+
const shown = stored.owner === owner ? stored : emptyList(owner);
|
|
79
|
+
const shownRef = (0, react_1.useRef)(shown);
|
|
80
|
+
shownRef.current = shown;
|
|
81
|
+
const firstPage = (0, react_1.useRef)(null);
|
|
82
|
+
const nextPage = (0, react_1.useRef)(null);
|
|
83
|
+
const update = (0, react_1.useCallback)((forOwner, change) => {
|
|
84
|
+
setStored((state) => (state.owner === forOwner ? { ...state, ...change(state) } : state));
|
|
85
|
+
}, []);
|
|
86
|
+
const readFirstPage = (0, react_1.useCallback)(() => {
|
|
87
|
+
const forOwner = ownerRef.current;
|
|
88
|
+
if (!forOwner)
|
|
89
|
+
return Promise.resolve();
|
|
90
|
+
const running = firstPage.current;
|
|
91
|
+
if ((running === null || running === void 0 ? void 0 : running.owner) === forOwner)
|
|
92
|
+
return running.done;
|
|
93
|
+
// The list's start is about to change, so a next page still on its way would land on the wrong list.
|
|
94
|
+
nextPage.current = null;
|
|
95
|
+
const source = sourceFor(customerRef.current);
|
|
96
|
+
const flight = { owner: forOwner, done: Promise.resolve() };
|
|
97
|
+
flight.done = (async () => {
|
|
98
|
+
try {
|
|
99
|
+
const page = await source.list(pageSizeRef.current, null);
|
|
100
|
+
update(forOwner, (state) => ({
|
|
101
|
+
...(0, orders_1.withFreshFirstPage)(state, page), answered: true, loadingMore: false, error: null,
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
update(forOwner, () => ({ answered: true, loadingMore: false, error: toError(error) }));
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
if (firstPage.current === flight)
|
|
109
|
+
firstPage.current = null;
|
|
110
|
+
}
|
|
111
|
+
})();
|
|
112
|
+
firstPage.current = flight;
|
|
113
|
+
return flight.done;
|
|
114
|
+
}, [update]);
|
|
115
|
+
const loadMore = (0, react_1.useCallback)(() => {
|
|
116
|
+
var _a, _b;
|
|
117
|
+
const forOwner = ownerRef.current;
|
|
118
|
+
const now = shownRef.current;
|
|
119
|
+
if (!forOwner || !now.answered || !now.hasMore || !now.endCursor)
|
|
120
|
+
return;
|
|
121
|
+
if (((_a = firstPage.current) === null || _a === void 0 ? void 0 : _a.owner) === forOwner || ((_b = nextPage.current) === null || _b === void 0 ? void 0 : _b.owner) === forOwner)
|
|
122
|
+
return;
|
|
123
|
+
const flight = { owner: forOwner };
|
|
124
|
+
nextPage.current = flight;
|
|
125
|
+
const source = sourceFor(customerRef.current);
|
|
126
|
+
const after = now.endCursor;
|
|
127
|
+
update(forOwner, () => ({ loadingMore: true }));
|
|
128
|
+
void (async () => {
|
|
129
|
+
try {
|
|
130
|
+
const page = await source.list(pageSizeRef.current, after);
|
|
131
|
+
if (nextPage.current !== flight)
|
|
132
|
+
return;
|
|
133
|
+
update(forOwner, (state) => ({ ...(0, orders_1.withNextPage)(state, page), loadingMore: false, error: null }));
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
if (nextPage.current !== flight)
|
|
137
|
+
return;
|
|
138
|
+
update(forOwner, () => ({ loadingMore: false, error: toError(error) }));
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
if (nextPage.current === flight)
|
|
142
|
+
nextPage.current = null;
|
|
143
|
+
}
|
|
144
|
+
})();
|
|
145
|
+
}, [update]);
|
|
146
|
+
// A new shopper (or none) starts from nothing; signed out, nothing is read.
|
|
147
|
+
(0, react_1.useEffect)(() => {
|
|
148
|
+
setStored((state) => (state.owner === owner ? state : emptyList(owner)));
|
|
149
|
+
if (owner)
|
|
150
|
+
void readFirstPage();
|
|
151
|
+
}, [owner, readFirstPage]);
|
|
152
|
+
const restoring = customer.restoring && owner === null;
|
|
153
|
+
const loading = restoring || (owner !== null && !shown.answered);
|
|
154
|
+
return (0, react_1.useMemo)(() => ({
|
|
155
|
+
orders: shown.orders,
|
|
156
|
+
loading,
|
|
157
|
+
loadingMore: shown.loadingMore,
|
|
158
|
+
error: shown.error,
|
|
159
|
+
hasMore: shown.hasMore,
|
|
160
|
+
loadMore,
|
|
161
|
+
refresh: readFirstPage,
|
|
162
|
+
}), [shown.orders, loading, shown.loadingMore, shown.error, shown.hasMore, loadMore, readFirstPage]);
|
|
163
|
+
}
|
|
164
|
+
// ── useLatestOrderSince ────────────────────────────────────────────────────
|
|
165
|
+
/**
|
|
166
|
+
* Shopify can take a few seconds to list a new order: until it does, the newest order is read again
|
|
167
|
+
* after these many seconds.
|
|
168
|
+
*/
|
|
169
|
+
exports.LATEST_ORDER_READ_AGAIN_SECONDS = [3, 8];
|
|
170
|
+
/**
|
|
171
|
+
* The order the shopper just placed, for an Order Confirmed page: the newest order, but only once it
|
|
172
|
+
* was placed at or after `since` (when checkout opened, on the phone's clock). Until then the newest
|
|
173
|
+
* is the order before, which production showed. While it isn't listed yet, the newest is read again
|
|
174
|
+
* after 3 and 8 seconds. Signed out, nothing is read and `order` is null (a guest's order isn't known
|
|
175
|
+
* here). `since` left out takes the newest order, whatever its date.
|
|
176
|
+
*/
|
|
177
|
+
function useLatestOrderSince(since, options = {}) {
|
|
178
|
+
var _a, _b;
|
|
179
|
+
const customer = (0, ShopifyProvider_1.useCustomer)();
|
|
180
|
+
const { orders, refresh } = useOrders({ pageSize: 1 });
|
|
181
|
+
const newest = orders[0];
|
|
182
|
+
const isTheNewOrder = !!newest && (0, orders_1.placedSince)(newest, since, (_a = options.clockLeewayMs) !== null && _a !== void 0 ? _a : orders_1.ORDER_CLOCK_LEEWAY_MS);
|
|
183
|
+
const readAgainAfterSeconds = (_b = options.readAgainAfterSeconds) !== null && _b !== void 0 ? _b : exports.LATEST_ORDER_READ_AGAIN_SECONDS;
|
|
184
|
+
const readAgainRef = (0, react_1.useRef)(readAgainAfterSeconds);
|
|
185
|
+
readAgainRef.current = readAgainAfterSeconds;
|
|
186
|
+
// By value, so a list written inline doesn't start the timers again on every render.
|
|
187
|
+
const readAgainKey = readAgainAfterSeconds.join(',');
|
|
188
|
+
(0, react_1.useEffect)(() => {
|
|
189
|
+
if (!customer.loggedIn || isTheNewOrder)
|
|
190
|
+
return;
|
|
191
|
+
const timers = readAgainRef.current.map((seconds) => setTimeout(() => void refresh(), seconds * 1000));
|
|
192
|
+
return () => timers.forEach(clearTimeout);
|
|
193
|
+
}, [customer.loggedIn, isTheNewOrder, refresh, readAgainKey]);
|
|
194
|
+
return { order: customer.loggedIn && isTheNewOrder ? newest : null };
|
|
195
|
+
}
|
|
196
|
+
const emptyOrder = (owner) => ({ owner, order: null, answered: false, notFound: false, error: null });
|
|
197
|
+
/** One of the signed-in shopper's orders, by the `id` `useOrders` gave. Nothing is read without an id. */
|
|
198
|
+
function useOrder(id) {
|
|
199
|
+
const customer = (0, ShopifyProvider_1.useCustomer)();
|
|
200
|
+
const cart = (0, ShopifyProvider_1.useCart)();
|
|
201
|
+
const shopper = useShopper(customer);
|
|
202
|
+
const owner = shopper && id ? `${shopper}|${id}` : null;
|
|
203
|
+
const customerRef = (0, react_1.useRef)(customer);
|
|
204
|
+
customerRef.current = customer;
|
|
205
|
+
const cartRef = (0, react_1.useRef)(cart);
|
|
206
|
+
cartRef.current = cart;
|
|
207
|
+
const ownerRef = (0, react_1.useRef)(owner);
|
|
208
|
+
ownerRef.current = owner;
|
|
209
|
+
const idRef = (0, react_1.useRef)(id);
|
|
210
|
+
idRef.current = id;
|
|
211
|
+
const [stored, setStored] = (0, react_1.useState)(() => emptyOrder(owner));
|
|
212
|
+
const shown = stored.owner === owner ? stored : emptyOrder(owner);
|
|
213
|
+
const shownRef = (0, react_1.useRef)(shown);
|
|
214
|
+
shownRef.current = shown;
|
|
215
|
+
const reading = (0, react_1.useRef)(null);
|
|
216
|
+
const read = (0, react_1.useCallback)(() => {
|
|
217
|
+
const forOwner = ownerRef.current;
|
|
218
|
+
const orderId = idRef.current;
|
|
219
|
+
if (!forOwner || !orderId)
|
|
220
|
+
return Promise.resolve();
|
|
221
|
+
const running = reading.current;
|
|
222
|
+
if ((running === null || running === void 0 ? void 0 : running.owner) === forOwner)
|
|
223
|
+
return running.done;
|
|
224
|
+
const source = sourceFor(customerRef.current);
|
|
225
|
+
const flight = { owner: forOwner, done: Promise.resolve() };
|
|
226
|
+
const update = (change) => setStored((state) => (state.owner === forOwner ? { ...state, ...change } : state));
|
|
227
|
+
flight.done = (async () => {
|
|
228
|
+
try {
|
|
229
|
+
const order = await source.get(orderId);
|
|
230
|
+
update({ order, answered: true, notFound: order === null, error: null });
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
update({ answered: true, error: toError(error) });
|
|
234
|
+
}
|
|
235
|
+
finally {
|
|
236
|
+
if (reading.current === flight)
|
|
237
|
+
reading.current = null;
|
|
238
|
+
}
|
|
239
|
+
})();
|
|
240
|
+
reading.current = flight;
|
|
241
|
+
return flight.done;
|
|
242
|
+
}, []);
|
|
243
|
+
(0, react_1.useEffect)(() => {
|
|
244
|
+
setStored((state) => (state.owner === owner ? state : emptyOrder(owner)));
|
|
245
|
+
if (owner)
|
|
246
|
+
void read();
|
|
247
|
+
}, [owner, read]);
|
|
248
|
+
const buyAgain = (0, react_1.useCallback)(async (options = {}) => {
|
|
249
|
+
var _a, _b;
|
|
250
|
+
const lines = (_b = (_a = shownRef.current.order) === null || _a === void 0 ? void 0 : _a.lineItems) !== null && _b !== void 0 ? _b : [];
|
|
251
|
+
if (lines.length === 0)
|
|
252
|
+
return { added: 0, skipped: 0 };
|
|
253
|
+
try {
|
|
254
|
+
const variantIds = [...new Set(lines.map((line) => line.variantId).filter((v) => !!v))];
|
|
255
|
+
const variants = variantIds.length > 0 ? await shopify_1.shopify.variants.byIds(variantIds) : [];
|
|
256
|
+
// The cart as it is now, after the stock read: the ref follows every render.
|
|
257
|
+
const { cart: before, addLines } = cartRef.current;
|
|
258
|
+
const plan = (0, orders_1.planBuyAgain)(lines, variants, before, { skipVariant: options.skipVariant });
|
|
259
|
+
if (plan.inputs.length === 0)
|
|
260
|
+
return { added: 0, skipped: lines.length };
|
|
261
|
+
// Quiet: the caller shows one summary for the whole order, not a message per refused line.
|
|
262
|
+
const after = await addLines(plan.inputs, { quiet: true });
|
|
263
|
+
if (!after)
|
|
264
|
+
return { added: 0, skipped: lines.length };
|
|
265
|
+
// `addLines` keeps the lines Shopify accepted and drops the rest, so a line landed if its variant
|
|
266
|
+
// grew. A line the guard cut (Cart Hold taking only the units still free) grew too: it counts as
|
|
267
|
+
// added, and the cut isn't reported.
|
|
268
|
+
const added = plan.inputs.filter((input) => (0, productPage_1.quantityInCart)(after, input.merchandiseId) > (0, productPage_1.quantityInCart)(before, input.merchandiseId)).length;
|
|
269
|
+
return { added, skipped: lines.length - added };
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
console.warn('[sdk-shopify] buy again failed', error);
|
|
273
|
+
return { added: 0, skipped: lines.length };
|
|
274
|
+
}
|
|
275
|
+
}, []);
|
|
276
|
+
const restoring = customer.restoring && shopper === null;
|
|
277
|
+
const loading = restoring || (owner !== null && !shown.answered);
|
|
278
|
+
return (0, react_1.useMemo)(() => ({
|
|
279
|
+
order: shown.order,
|
|
280
|
+
loading,
|
|
281
|
+
error: shown.error,
|
|
282
|
+
notFound: shown.notFound,
|
|
283
|
+
refresh: read,
|
|
284
|
+
buyAgain,
|
|
285
|
+
}), [shown.order, loading, shown.error, shown.notFound, read, buyAgain]);
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=useOrders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOrders.js","sourceRoot":"","sources":["../../src/react/useOrders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProduct.d.ts","sourceRoot":"","sources":["../../src/react/useProduct.ts"],"names":[],"mappings":"AAgBA,OAAO,
|
|
1
|
+
{"version":3,"file":"useProduct.d.ts","sourceRoot":"","sources":["../../src/react/useProduct.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAkD,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAInG,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7E;AAED,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,0FAA0F;IAC1F,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,mFAAmF;IACnF,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,sEAAsE;IACtE,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,KAAK,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,iEAAiE;IACjE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA0BD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAyE/G"}
|
package/dist/react/useProduct.js
CHANGED
|
@@ -82,7 +82,6 @@ function useProduct(handle, options = {}) {
|
|
|
82
82
|
shopify_1.shopify.products
|
|
83
83
|
.byHandle(handle, { fresh, imageTransform: transformRef.current })
|
|
84
84
|
.then((product) => {
|
|
85
|
-
var _a, _b;
|
|
86
85
|
if (requestId.current !== id)
|
|
87
86
|
return;
|
|
88
87
|
if (!product) {
|
|
@@ -91,14 +90,7 @@ function useProduct(handle, options = {}) {
|
|
|
91
90
|
}
|
|
92
91
|
setState({
|
|
93
92
|
product,
|
|
94
|
-
preview:
|
|
95
|
-
id: product.id,
|
|
96
|
-
handle: product.handle,
|
|
97
|
-
title: product.title,
|
|
98
|
-
featuredImage: (_a = product.featuredImage) !== null && _a !== void 0 ? _a : null,
|
|
99
|
-
priceRange: product.priceRange,
|
|
100
|
-
compareAtPriceRange: (_b = product.compareAtPriceRange) !== null && _b !== void 0 ? _b : null,
|
|
101
|
-
},
|
|
93
|
+
preview: (0, productStore_1.toProductBase)(product),
|
|
102
94
|
level: 'full',
|
|
103
95
|
loading: false,
|
|
104
96
|
refreshing: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProduct.js","sourceRoot":"","sources":["../../src/react/useProduct.ts"],"names":[],"mappings":";;AA8EA,
|
|
1
|
+
{"version":3,"file":"useProduct.js","sourceRoot":"","sources":["../../src/react/useProduct.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProductFeed.d.ts","sourceRoot":"","sources":["../../src/react/useProductFeed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useProductFeed.d.ts","sourceRoot":"","sources":["../../src/react/useProductFeed.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzE,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAE7C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,uGAAuG;IACvG,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC;IAC/B,KAAK,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,sFAAsF;IACtF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB,wFAAwF;IACxF,WAAW,EAAE,OAAO,CAAC;IACrB,iFAAiF;IACjF,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,sFAAsF;IACtF,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,0FAA0F;IAC1F,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,wFAAwF;IACxF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iGAAiG;IACjG,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,+DAA+D;IAC/D,YAAY,EAAE,OAAO,CAAC;CACvB;AAwCD,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,iBAAiB,CAwMpE"}
|
|
@@ -19,6 +19,7 @@ exports.useProductFeed = useProductFeed;
|
|
|
19
19
|
*/
|
|
20
20
|
const react_1 = require("react");
|
|
21
21
|
const client_1 = require("../client");
|
|
22
|
+
const filters_1 = require("../filters");
|
|
22
23
|
const productStore_1 = require("../productStore");
|
|
23
24
|
const ShopifyProvider_1 = require("./ShopifyProvider");
|
|
24
25
|
/** A cached first page younger than this is shown without asking the network again. */
|
|
@@ -83,6 +84,24 @@ function useProductFeed(source) {
|
|
|
83
84
|
];
|
|
84
85
|
// Filters and sort objects are rebuilt every render; the effect keys on their serialisation.
|
|
85
86
|
const filterKey = allFilters.length ? JSON.stringify(allFilters) : '';
|
|
87
|
+
/**
|
|
88
|
+
* The feed's whole price range, from its last read made without a price filter. Once a price filter
|
|
89
|
+
* is applied, Shopify answers the `PRICE_RANGE` facet with the applied range itself (`{min:20,max:40}`
|
|
90
|
+
* for a 20–40 filter, read from the store 2026-10-08), and a sheet that takes that for the whole range
|
|
91
|
+
* drops the price filter on its next Apply (`priceFilterInput` treats bounds at the range's ends as no
|
|
92
|
+
* bound): applying "In stock" after a price removed the price (fixed 2026-10-08, 0.10.1). So while a price
|
|
93
|
+
* filter is selected, the feed keeps offering the whole range it saw before.
|
|
94
|
+
*/
|
|
95
|
+
const wholePriceFacet = (0, react_1.useRef)(null);
|
|
96
|
+
const feedKey = source.id ? `${source.id}|${source.paramsKey}` : null;
|
|
97
|
+
const priceSelected = selectedFilters.some(filters_1.isPriceFilterInput);
|
|
98
|
+
const rememberWholePriceRange = (filters) => {
|
|
99
|
+
if (priceSelected || !feedKey)
|
|
100
|
+
return;
|
|
101
|
+
const facet = filters.find((filter) => filter.type === 'PRICE_RANGE');
|
|
102
|
+
if (facet)
|
|
103
|
+
wholePriceFacet.current = { feed: feedKey, facet };
|
|
104
|
+
};
|
|
86
105
|
const listKey = source.id ? `${source.id}|${source.paramsKey}|${filterKey}` : null;
|
|
87
106
|
// First render: the cached page, if there is one, so the grid paints on frame one.
|
|
88
107
|
const [state, setState] = (0, react_1.useState)(() => {
|
|
@@ -110,6 +129,7 @@ function useProductFeed(source) {
|
|
|
110
129
|
if (cached && !fresh && Date.now() - cached.at < exports.REVALIDATE_AFTER_MS) {
|
|
111
130
|
// Recent enough: show it and page on from its cursor, without a network read.
|
|
112
131
|
cursor.current = cached.pageInfo.endCursor;
|
|
132
|
+
rememberWholePriceRange(cached.filters);
|
|
113
133
|
setState(fromList(cached, false));
|
|
114
134
|
return;
|
|
115
135
|
}
|
|
@@ -126,21 +146,22 @@ function useProductFeed(source) {
|
|
|
126
146
|
sourceRef.current
|
|
127
147
|
.fetch({ filters: allFilters.length ? allFilters : undefined, fresh })
|
|
128
148
|
.then((page) => {
|
|
129
|
-
var _a, _b, _c, _d;
|
|
149
|
+
var _a, _b, _c, _d, _e;
|
|
130
150
|
if (requestId.current !== id)
|
|
131
151
|
return;
|
|
132
152
|
cursor.current = page.pageInfo.endCursor;
|
|
153
|
+
rememberWholePriceRange((_a = page.filters) !== null && _a !== void 0 ? _a : []);
|
|
133
154
|
(0, productStore_1.rememberList)(listKey, {
|
|
134
155
|
products: page.nodes,
|
|
135
156
|
pageInfo: page.pageInfo,
|
|
136
|
-
title: (
|
|
137
|
-
filters: (
|
|
157
|
+
title: (_b = page.title) !== null && _b !== void 0 ? _b : null,
|
|
158
|
+
filters: (_c = page.filters) !== null && _c !== void 0 ? _c : [],
|
|
138
159
|
totalCount: page.totalCount,
|
|
139
160
|
});
|
|
140
161
|
setState({
|
|
141
162
|
products: page.nodes,
|
|
142
|
-
title: (
|
|
143
|
-
availableFilters: (
|
|
163
|
+
title: (_d = page.title) !== null && _d !== void 0 ? _d : null,
|
|
164
|
+
availableFilters: (_e = page.filters) !== null && _e !== void 0 ? _e : [],
|
|
144
165
|
totalCount: page.totalCount,
|
|
145
166
|
loading: false,
|
|
146
167
|
loadingMore: false,
|
|
@@ -217,8 +238,15 @@ function useProductFeed(source) {
|
|
|
217
238
|
freshNext.current = true;
|
|
218
239
|
setAttempt((n) => n + 1);
|
|
219
240
|
}, []);
|
|
241
|
+
const whole = wholePriceFacet.current;
|
|
242
|
+
const availableFilters = priceSelected && whole && whole.feed === feedKey
|
|
243
|
+
? state.availableFilters.some((filter) => filter.type === 'PRICE_RANGE')
|
|
244
|
+
? state.availableFilters.map((filter) => (filter.type === 'PRICE_RANGE' ? whole.facet : filter))
|
|
245
|
+
: [...state.availableFilters, whole.facet]
|
|
246
|
+
: state.availableFilters;
|
|
220
247
|
return {
|
|
221
248
|
...state,
|
|
249
|
+
availableFilters,
|
|
222
250
|
loadMore,
|
|
223
251
|
retry: refresh,
|
|
224
252
|
refresh,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProductFeed.js","sourceRoot":"","sources":["../../src/react/useProductFeed.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"useProductFeed.js","sourceRoot":"","sources":["../../src/react/useProductFeed.ts"],"names":[],"mappings":"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"}
|