@tapcart/mobile-components 0.16.1 → 0.16.3
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/dist/components/hooks/use-cache.d.ts +19 -0
- package/dist/components/hooks/use-cache.d.ts.map +1 -0
- package/dist/components/hooks/use-cache.js +116 -0
- package/dist/components/hooks/use-cache.test.d.ts +2 -0
- package/dist/components/hooks/use-cache.test.d.ts.map +1 -0
- package/dist/components/hooks/use-cache.test.js +56 -0
- package/dist/components/hooks/use-order-details.d.ts +23 -0
- package/dist/components/hooks/use-order-details.d.ts.map +1 -1
- package/dist/components/hooks/use-order-details.js +59 -11
- package/dist/components/hooks/use-products.d.ts.map +1 -1
- package/dist/components/hooks/use-products.js +5 -1
- package/dist/components/hooks/use-recommendations.d.ts.map +1 -1
- package/dist/components/hooks/use-recommendations.js +2 -0
- package/dist/components/hooks/use-reviews.d.ts.map +1 -1
- package/dist/components/hooks/use-reviews.js +12 -2
- package/dist/components/hooks/use-sort-filter.d.ts.map +1 -1
- package/dist/components/hooks/use-sort-filter.js +6 -1
- package/dist/components/ui/drawer.d.ts +3 -2
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer.js +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +2 -0
- package/dist/tests/use-order-details.test.js +84 -1
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SWRConfiguration, KeyedMutator } from "swr";
|
|
2
|
+
type AllowedOverrides<T = any> = {
|
|
3
|
+
dedupingInterval?: number;
|
|
4
|
+
refreshInterval?: number;
|
|
5
|
+
onSuccess?: (data: T, key: string, config: SWRConfiguration) => void;
|
|
6
|
+
onError?: (err: any, key: string, config: SWRConfiguration) => void;
|
|
7
|
+
fallbackData?: T;
|
|
8
|
+
keepPreviousData?: boolean;
|
|
9
|
+
shouldRetryOnError?: boolean;
|
|
10
|
+
errorRetryCount?: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function useCache<T = any>(key: string | any[] | Record<string, any> | null | undefined, fetcher: (key: any) => Promise<T>, options?: AllowedOverrides<T>): {
|
|
13
|
+
data: T | undefined;
|
|
14
|
+
error: any;
|
|
15
|
+
isLoading: boolean;
|
|
16
|
+
mutate: KeyedMutator<T>;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=use-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-cache.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-cache.ts"],"names":[],"mappings":"AACA,OAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AAG5D,KAAK,gBAAgB,CAAC,CAAC,GAAG,GAAG,IAAI;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACpE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACnE,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAqED,wBAAgB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAC9B,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,EAC5D,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EACjC,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B;IACD,IAAI,EAAE,CAAC,GAAG,SAAS,CAAA;IACnB,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;CACxB,CAqEA"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import useSWR from "swr";
|
|
3
|
+
const ALLOWED_KEYS = [
|
|
4
|
+
"dedupingInterval",
|
|
5
|
+
"refreshInterval",
|
|
6
|
+
"onSuccess",
|
|
7
|
+
"onError",
|
|
8
|
+
"fallbackData",
|
|
9
|
+
"keepPreviousData",
|
|
10
|
+
"shouldRetryOnError",
|
|
11
|
+
"errorRetryCount",
|
|
12
|
+
];
|
|
13
|
+
const DEDUPING_MIN = 5000;
|
|
14
|
+
const DEDUPING_MAX = 300000;
|
|
15
|
+
const DEDUPING_DEFAULT = 60000;
|
|
16
|
+
const REFRESH_MIN = 10000;
|
|
17
|
+
const ERROR_RETRY_MIN = 0;
|
|
18
|
+
const ERROR_RETRY_MAX = 5;
|
|
19
|
+
const ERROR_RETRY_DEFAULT = 2;
|
|
20
|
+
// Enforced defaults (used when the caller does not override)
|
|
21
|
+
const ENFORCED_DEFAULTS = {
|
|
22
|
+
revalidateOnFocus: false,
|
|
23
|
+
revalidateOnReconnect: false,
|
|
24
|
+
revalidateIfStale: false,
|
|
25
|
+
dedupingInterval: DEDUPING_DEFAULT,
|
|
26
|
+
errorRetryCount: ERROR_RETRY_DEFAULT,
|
|
27
|
+
shouldRetryOnError: true,
|
|
28
|
+
};
|
|
29
|
+
const clamp = (value, min, max) => Math.min(Math.max(value, min), max);
|
|
30
|
+
const sanitizeOverrides = (options) => {
|
|
31
|
+
if (!options || typeof options !== "object")
|
|
32
|
+
return {};
|
|
33
|
+
const out = {};
|
|
34
|
+
for (const key of ALLOWED_KEYS) {
|
|
35
|
+
if (!(key in options))
|
|
36
|
+
continue;
|
|
37
|
+
const value = options[key];
|
|
38
|
+
if (value === undefined)
|
|
39
|
+
continue;
|
|
40
|
+
if (key === "dedupingInterval") {
|
|
41
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
42
|
+
continue;
|
|
43
|
+
out.dedupingInterval = clamp(value, DEDUPING_MIN, DEDUPING_MAX);
|
|
44
|
+
}
|
|
45
|
+
else if (key === "refreshInterval") {
|
|
46
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
47
|
+
continue;
|
|
48
|
+
out.refreshInterval = value === 0 ? 0 : Math.max(value, REFRESH_MIN);
|
|
49
|
+
}
|
|
50
|
+
else if (key === "errorRetryCount") {
|
|
51
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
52
|
+
continue;
|
|
53
|
+
out.errorRetryCount = clamp(value, ERROR_RETRY_MIN, ERROR_RETRY_MAX);
|
|
54
|
+
}
|
|
55
|
+
else if (key === "shouldRetryOnError") {
|
|
56
|
+
if (typeof value !== "boolean")
|
|
57
|
+
continue;
|
|
58
|
+
out.shouldRetryOnError = value;
|
|
59
|
+
}
|
|
60
|
+
else if (key === "onSuccess" || key === "onError") {
|
|
61
|
+
if (typeof value !== "function")
|
|
62
|
+
continue;
|
|
63
|
+
out[key] = value;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
;
|
|
67
|
+
out[key] = value;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return out;
|
|
71
|
+
};
|
|
72
|
+
export function useCache(key, fetcher, options) {
|
|
73
|
+
if (key !== null &&
|
|
74
|
+
key !== undefined &&
|
|
75
|
+
typeof key !== "string" &&
|
|
76
|
+
typeof key !== "object") {
|
|
77
|
+
throw new TypeError("useCache: key must be a string, array, plain object, null, or undefined");
|
|
78
|
+
}
|
|
79
|
+
if (typeof fetcher !== "function") {
|
|
80
|
+
throw new TypeError("useCache: fetcher must be a function");
|
|
81
|
+
}
|
|
82
|
+
// An empty-string key almost always means a key was computed from missing
|
|
83
|
+
// data (e.g. `/products/${id}` with an undefined id). Fail loudly so the
|
|
84
|
+
// block hits its ErrorBoundary and the developer gets feedback, rather than
|
|
85
|
+
// silently never fetching. Pass `null`/`undefined` to intentionally disable
|
|
86
|
+
// the request (SWR's conditional-fetching idiom) — that stays silent.
|
|
87
|
+
if (key === "") {
|
|
88
|
+
console.error("useCache: received an empty-string key — this usually means a key was computed from missing data");
|
|
89
|
+
throw new TypeError("useCache: key must not be an empty string");
|
|
90
|
+
}
|
|
91
|
+
// Only null/undefined disable the request. The raw key (not a JSON.stringify'd
|
|
92
|
+
// string) is passed to useSWR so SWR's own stableHash can dedupe object/array
|
|
93
|
+
// keys regardless of property order.
|
|
94
|
+
const swrKey = key === null || key === undefined ? null : key;
|
|
95
|
+
if (swrKey !== null) {
|
|
96
|
+
try {
|
|
97
|
+
JSON.stringify(swrKey);
|
|
98
|
+
}
|
|
99
|
+
catch (_a) {
|
|
100
|
+
throw new TypeError("useCache: key must be JSON-serializable");
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const overrides = sanitizeOverrides(options);
|
|
104
|
+
// Allowed overrides apply first, then enforced defaults win for the locked keys.
|
|
105
|
+
const mergedConfig = Object.assign(Object.assign(Object.assign({}, overrides), ENFORCED_DEFAULTS), {
|
|
106
|
+
// These are allowed overrides — let the caller win when provided.
|
|
107
|
+
dedupingInterval: overrides.dedupingInterval !== undefined
|
|
108
|
+
? overrides.dedupingInterval
|
|
109
|
+
: ENFORCED_DEFAULTS.dedupingInterval, errorRetryCount: overrides.errorRetryCount !== undefined
|
|
110
|
+
? overrides.errorRetryCount
|
|
111
|
+
: ENFORCED_DEFAULTS.errorRetryCount, shouldRetryOnError: overrides.shouldRetryOnError !== undefined
|
|
112
|
+
? overrides.shouldRetryOnError
|
|
113
|
+
: ENFORCED_DEFAULTS.shouldRetryOnError });
|
|
114
|
+
const { data, error, isLoading, mutate } = useSWR(swrKey, () => fetcher(key), mergedConfig);
|
|
115
|
+
return { data, error, isLoading, mutate };
|
|
116
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-cache.test.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-cache.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { renderHook } from "@testing-library/react";
|
|
2
|
+
import { useCache } from "./use-cache";
|
|
3
|
+
// Mock SWR so we can observe which key reaches it without real fetching.
|
|
4
|
+
const swrSpy = jest.fn();
|
|
5
|
+
jest.mock("swr", () => ({
|
|
6
|
+
__esModule: true,
|
|
7
|
+
default: (key, fetcher, options) => {
|
|
8
|
+
swrSpy(key, fetcher, options);
|
|
9
|
+
// Mirror SWR: a null key disables fetching.
|
|
10
|
+
return {
|
|
11
|
+
data: undefined,
|
|
12
|
+
error: undefined,
|
|
13
|
+
isLoading: key !== null,
|
|
14
|
+
mutate: jest.fn(),
|
|
15
|
+
};
|
|
16
|
+
},
|
|
17
|
+
}));
|
|
18
|
+
describe("useCache", () => {
|
|
19
|
+
const fetcher = jest.fn().mockResolvedValue({ ok: true });
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
jest.clearAllMocks();
|
|
22
|
+
});
|
|
23
|
+
it("throws on an empty-string key so the developer gets feedback", () => {
|
|
24
|
+
const consoleError = jest
|
|
25
|
+
.spyOn(console, "error")
|
|
26
|
+
.mockImplementation(() => { });
|
|
27
|
+
expect(() => renderHook(() => useCache("", fetcher))).toThrow("useCache: key must not be an empty string");
|
|
28
|
+
expect(consoleError).toHaveBeenCalledWith(expect.stringContaining("empty-string key"));
|
|
29
|
+
expect(swrSpy).not.toHaveBeenCalled();
|
|
30
|
+
consoleError.mockRestore();
|
|
31
|
+
});
|
|
32
|
+
it("disables the request for a null key (SWR conditional-fetching idiom)", () => {
|
|
33
|
+
const { result } = renderHook(() => useCache(null, fetcher));
|
|
34
|
+
expect(swrSpy).toHaveBeenCalledWith(null, expect.any(Function), expect.any(Object));
|
|
35
|
+
expect(result.current.isLoading).toBe(false);
|
|
36
|
+
});
|
|
37
|
+
it("disables the request for an undefined key", () => {
|
|
38
|
+
renderHook(() => useCache(undefined, fetcher));
|
|
39
|
+
expect(swrSpy).toHaveBeenCalledWith(null, expect.any(Function), expect.any(Object));
|
|
40
|
+
});
|
|
41
|
+
it("passes a non-empty string key straight through to SWR", () => {
|
|
42
|
+
renderHook(() => useCache("/products/123", fetcher));
|
|
43
|
+
expect(swrSpy).toHaveBeenCalledWith("/products/123", expect.any(Function), expect.any(Object));
|
|
44
|
+
});
|
|
45
|
+
it("passes the raw object key through so SWR's stableHash can dedupe it", () => {
|
|
46
|
+
const key = { id: "123", locale: "en" };
|
|
47
|
+
renderHook(() => useCache(key, fetcher));
|
|
48
|
+
expect(swrSpy).toHaveBeenCalledWith(key, expect.any(Function), expect.any(Object));
|
|
49
|
+
});
|
|
50
|
+
it("throws when the key is neither string, object, nullish", () => {
|
|
51
|
+
expect(() => renderHook(() => useCache(123, fetcher))).toThrow(TypeError);
|
|
52
|
+
});
|
|
53
|
+
it("throws when the fetcher is not a function", () => {
|
|
54
|
+
expect(() => renderHook(() => useCache("/products/123", undefined))).toThrow("useCache: fetcher must be a function");
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -9,6 +9,29 @@ type UseOrderDetailsProps = {
|
|
|
9
9
|
type UseProductsReturn = {
|
|
10
10
|
orderDetails: Record<string, any>;
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Effective (post-edit) quantity for an order line item, correct across BOTH
|
|
14
|
+
* Shopify order APIs the app consumes:
|
|
15
|
+
*
|
|
16
|
+
* - Storefront API exposes `currentQuantity` (ordered minus removed); it is 0
|
|
17
|
+
* for a line removed via Order Editing. Authoritative when present.
|
|
18
|
+
* - New Customer Account API has NO `currentQuantity`. There the only
|
|
19
|
+
* per-line signal is `refundableQuantity` (= quantity − refunded), which is
|
|
20
|
+
* also driven down to the post-edit count by an Order Editing removal
|
|
21
|
+
* (verified against real prod data: a removed line has refundableQuantity 0
|
|
22
|
+
* with no refund record). We trust it ONLY when the order was `edited` AND
|
|
23
|
+
* has no refund activity — because a refund/return ALSO lowers
|
|
24
|
+
* `refundableQuantity`, and `edited` is sticky, so on an edited-then-refunded
|
|
25
|
+
* order we cannot tell an edit-removal from a return. In that case we fall
|
|
26
|
+
* back to the ordered `quantity` (show the item) rather than risk hiding a
|
|
27
|
+
* line the customer actually bought / returned, or blanking a fully-refunded
|
|
28
|
+
* order. Trade-off: an item removed via an edit that DID issue a refund is
|
|
29
|
+
* not hidden (needs a per-line signal the API doesn't expose).
|
|
30
|
+
*
|
|
31
|
+
* Exported so blocks (PurchaseOverview, OrderHistory, OrderStatus) that build
|
|
32
|
+
* their own order objects from raw `customer.orders` share one implementation.
|
|
33
|
+
*/
|
|
34
|
+
export declare const getEffectiveLineQuantity: (order: Record<string, any>, lineItem: Record<string, any>) => number;
|
|
12
35
|
export declare const transformOrderDetails: (order: Record<string, any>) => {
|
|
13
36
|
orderDetails: Record<string, any>;
|
|
14
37
|
checkoutData: Record<string, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-order-details.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-order-details.ts"],"names":[],"mappings":"AAKA,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAClC,CAAA;
|
|
1
|
+
{"version":3,"file":"use-order-details.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-order-details.ts"],"names":[],"mappings":"AAKA,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAClC,CAAA;AAwMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,wBAAwB,UAC5B,OAAO,MAAM,EAAE,GAAG,CAAC,YAChB,OAAO,MAAM,EAAE,GAAG,CAAC,KAC5B,MAUF,CAAA;AAED,eAAO,MAAM,qBAAqB,UACzB,OAAO,MAAM,EAAE,GAAG,CAAC;kBACT,OAAO,MAAM,EAAE,GAAG,CAAC;kBAAgB,OAAO,MAAM,EAAE,GAAG,CAAC;CAoOxE,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAY,GACb,EAAE,oBAAoB,GAAG,iBAAiB,CAiE1C"}
|
|
@@ -138,6 +138,54 @@ const updateLineDetails = (line, product) => {
|
|
|
138
138
|
line.sellingPlan = (_k = (_j = product.sellingPlanAllocation) === null || _j === void 0 ? void 0 : _j.sellingPlan) === null || _k === void 0 ? void 0 : _k.name;
|
|
139
139
|
line.variantName = (_l = product.variant) === null || _l === void 0 ? void 0 : _l.title;
|
|
140
140
|
};
|
|
141
|
+
/**
|
|
142
|
+
* True when an order has any refund/return activity. Used to keep the
|
|
143
|
+
* Customer-Account-API `refundableQuantity` heuristic (below) away from orders
|
|
144
|
+
* whose `refundableQuantity` was lowered by a refund rather than an order edit.
|
|
145
|
+
*/
|
|
146
|
+
const hasRefundActivity = (order) => {
|
|
147
|
+
var _a, _b, _c;
|
|
148
|
+
if (Array.isArray(order === null || order === void 0 ? void 0 : order.refunds) && order.refunds.length > 0)
|
|
149
|
+
return true;
|
|
150
|
+
const refunded = (_c = (_b = (_a = order === null || order === void 0 ? void 0 : order.totalRefunded) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : order === null || order === void 0 ? void 0 : order.totalRefunded) !== null && _c !== void 0 ? _c : order === null || order === void 0 ? void 0 : order.totalRefund;
|
|
151
|
+
if (refunded != null && parseFloat(String(refunded)) > 0)
|
|
152
|
+
return true;
|
|
153
|
+
const status = String((order === null || order === void 0 ? void 0 : order.financialStatus) || "").toUpperCase();
|
|
154
|
+
return status.includes("REFUND"); // REFUNDED / PARTIALLY_REFUNDED
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Effective (post-edit) quantity for an order line item, correct across BOTH
|
|
158
|
+
* Shopify order APIs the app consumes:
|
|
159
|
+
*
|
|
160
|
+
* - Storefront API exposes `currentQuantity` (ordered minus removed); it is 0
|
|
161
|
+
* for a line removed via Order Editing. Authoritative when present.
|
|
162
|
+
* - New Customer Account API has NO `currentQuantity`. There the only
|
|
163
|
+
* per-line signal is `refundableQuantity` (= quantity − refunded), which is
|
|
164
|
+
* also driven down to the post-edit count by an Order Editing removal
|
|
165
|
+
* (verified against real prod data: a removed line has refundableQuantity 0
|
|
166
|
+
* with no refund record). We trust it ONLY when the order was `edited` AND
|
|
167
|
+
* has no refund activity — because a refund/return ALSO lowers
|
|
168
|
+
* `refundableQuantity`, and `edited` is sticky, so on an edited-then-refunded
|
|
169
|
+
* order we cannot tell an edit-removal from a return. In that case we fall
|
|
170
|
+
* back to the ordered `quantity` (show the item) rather than risk hiding a
|
|
171
|
+
* line the customer actually bought / returned, or blanking a fully-refunded
|
|
172
|
+
* order. Trade-off: an item removed via an edit that DID issue a refund is
|
|
173
|
+
* not hidden (needs a per-line signal the API doesn't expose).
|
|
174
|
+
*
|
|
175
|
+
* Exported so blocks (PurchaseOverview, OrderHistory, OrderStatus) that build
|
|
176
|
+
* their own order objects from raw `customer.orders` share one implementation.
|
|
177
|
+
*/
|
|
178
|
+
export const getEffectiveLineQuantity = (order, lineItem) => {
|
|
179
|
+
var _a;
|
|
180
|
+
if (lineItem.currentQuantity != null)
|
|
181
|
+
return lineItem.currentQuantity;
|
|
182
|
+
if ((order === null || order === void 0 ? void 0 : order.edited) === true &&
|
|
183
|
+
lineItem.refundableQuantity != null &&
|
|
184
|
+
!hasRefundActivity(order)) {
|
|
185
|
+
return lineItem.refundableQuantity;
|
|
186
|
+
}
|
|
187
|
+
return (_a = lineItem.quantity) !== null && _a !== void 0 ? _a : 1;
|
|
188
|
+
};
|
|
141
189
|
export const transformOrderDetails = (order) => {
|
|
142
190
|
var _a;
|
|
143
191
|
// Helper function to safely parse amounts
|
|
@@ -148,12 +196,12 @@ export const transformOrderDetails = (order) => {
|
|
|
148
196
|
return parseFloat(amount) || 0;
|
|
149
197
|
return 0;
|
|
150
198
|
};
|
|
151
|
-
|
|
152
|
-
//
|
|
153
|
-
const activeLineItems = (order.lineItems || []).filter((lineItem) =>
|
|
199
|
+
const effectiveQuantity = (lineItem) => getEffectiveLineQuantity(order, lineItem);
|
|
200
|
+
// Line items removed via Order Editing must not be shown to the customer
|
|
201
|
+
const activeLineItems = (order.lineItems || []).filter((lineItem) => effectiveQuantity(lineItem) > 0);
|
|
154
202
|
// Transform line items to cart lines
|
|
155
203
|
const cartLines = activeLineItems.map((lineItem) => {
|
|
156
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p
|
|
204
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
157
205
|
const variant = lineItem.variant || {};
|
|
158
206
|
const product = variant.product || {};
|
|
159
207
|
return {
|
|
@@ -188,13 +236,13 @@ export const transformOrderDetails = (order) => {
|
|
|
188
236
|
productId: ((_k = variant.product) === null || _k === void 0 ? void 0 : _k.id) || lineItem.productId,
|
|
189
237
|
merchandiseId: variant.id || lineItem.merchandiseId,
|
|
190
238
|
title: lineItem.title || product.title || "Unknown Product",
|
|
191
|
-
quantity: (
|
|
239
|
+
quantity: effectiveQuantity(lineItem),
|
|
192
240
|
uniqueId: crypto.randomUUID(),
|
|
193
241
|
vendor: product.vendor || lineItem.vendor || "Unknown",
|
|
194
242
|
compareAtPrice: {
|
|
195
|
-
amount: parseAmount(((
|
|
196
|
-
currencyCode: ((
|
|
197
|
-
((
|
|
243
|
+
amount: parseAmount(((_l = lineItem.originalTotalPrice) === null || _l === void 0 ? void 0 : _l.amount) || ((_m = lineItem.compareAtPrice) === null || _m === void 0 ? void 0 : _m.amount)),
|
|
244
|
+
currencyCode: ((_o = lineItem.originalTotalPrice) === null || _o === void 0 ? void 0 : _o.currencyCode) ||
|
|
245
|
+
((_p = lineItem.compareAtPrice) === null || _p === void 0 ? void 0 : _p.currencyCode) ||
|
|
198
246
|
order.currency ||
|
|
199
247
|
"USD",
|
|
200
248
|
},
|
|
@@ -265,7 +313,7 @@ export const transformOrderDetails = (order) => {
|
|
|
265
313
|
})),
|
|
266
314
|
subtotalPrice: wrapMoney(subtotal, currencyCode),
|
|
267
315
|
lineItems: activeLineItems.map((lineItem) => {
|
|
268
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t
|
|
316
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
269
317
|
const variant = lineItem.variant || {};
|
|
270
318
|
const product = variant.product || {};
|
|
271
319
|
const currencyCode = ((_a = lineItem.discountedTotalPrice) === null || _a === void 0 ? void 0 : _a.currencyCode) ||
|
|
@@ -315,9 +363,9 @@ export const transformOrderDetails = (order) => {
|
|
|
315
363
|
discountApplication: allocation.discountApplication || {},
|
|
316
364
|
});
|
|
317
365
|
}),
|
|
318
|
-
quantity: (
|
|
366
|
+
quantity: effectiveQuantity(lineItem),
|
|
319
367
|
title: lineItem.title || product.title,
|
|
320
|
-
id: ((
|
|
368
|
+
id: ((_s = variant.id) === null || _s === void 0 ? void 0 : _s.split("/").pop()) || ((_t = lineItem.variantId) === null || _t === void 0 ? void 0 : _t.split("/").pop()),
|
|
321
369
|
};
|
|
322
370
|
}),
|
|
323
371
|
totalPrice: wrapMoney(total, currencyCode),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-products.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-products.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAK1C,KAAK,GAAG,GAAG,MAAM,CAAA;AACjB,KAAK,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AACxD,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,EAAE,GAAG,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1E,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AACD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAC3B;QACE,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;KACf,GACD,SAAS,CAAA;CACd,CAAA;AAqDD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"use-products.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-products.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAK1C,KAAK,GAAG,GAAG,MAAM,CAAA;AACjB,KAAK,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AACxD,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,EAAE,GAAG,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1E,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AACD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAC3B;QACE,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;KACf,GACD,SAAS,CAAA;CACd,CAAA;AAqDD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,iBAAiB,CA0L7E"}
|
|
@@ -138,7 +138,11 @@ export function useProducts(props) {
|
|
|
138
138
|
setIsProductResponseReady(false);
|
|
139
139
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
140
140
|
}, [requestedProductKey]);
|
|
141
|
-
const { data, error, isLoading } = useSWR(url ? [url, body] : null, ([url, body]) => fetcher(url, body)
|
|
141
|
+
const { data, error, isLoading } = useSWR(url ? [url, body] : null, ([url, body]) => fetcher(url, body), {
|
|
142
|
+
revalidateOnFocus: false,
|
|
143
|
+
revalidateOnReconnect: false,
|
|
144
|
+
dedupingInterval: 60000,
|
|
145
|
+
});
|
|
142
146
|
const cacheProduct = (product) => {
|
|
143
147
|
const cachedProduct = productsLocalStorage.setCacheItem(product);
|
|
144
148
|
return cachedProduct;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-recommendations.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-recommendations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAOxE,UAAU,sBAAsB;IAE9B,YAAY,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAGxC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;CACf;AAUD,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,EAAE,GAAG,EAAE,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,GAAG,CAAA;CACX;AAmBD,QAAA,MAAM,kBAAkB,yEASrB,sBAAsB,KAAG,
|
|
1
|
+
{"version":3,"file":"use-recommendations.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-recommendations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAOxE,UAAU,sBAAsB;IAE9B,YAAY,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAGxC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;CACf;AAUD,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,EAAE,GAAG,EAAE,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,GAAG,CAAA;CACX;AAmBD,QAAA,MAAM,kBAAkB,yEASrB,sBAAsB,KAAG,uBA6H3B,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -86,6 +86,8 @@ queryVariables, apiURL, }) => {
|
|
|
86
86
|
const fetcher = usingSearchClient ? searchClientFetcher : apiFetcher;
|
|
87
87
|
const { data, error, isLoading } = useSWR(swrKey, usingSearchClient ? fetcher : (body) => apiFetcher(body), {
|
|
88
88
|
revalidateOnFocus: false,
|
|
89
|
+
revalidateIfStale: false,
|
|
90
|
+
dedupingInterval: 60000,
|
|
89
91
|
revalidateOnReconnect: false,
|
|
90
92
|
});
|
|
91
93
|
React.useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-reviews.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-reviews.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AAGzB,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACvC,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAA;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;IACjB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAA;IAChB,MAAM,EACF,MAAM,GACN,UAAU,GACV,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,eAAe,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAClE,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,oBAAoB,CAAC,EAAE,GAAG,CAAA;IAC1B,eAAe,CAAC,EAAE;QAChB,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;CACF,CAAA;AA2ED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"use-reviews.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-reviews.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AAGzB,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACvC,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAA;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;IACjB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAA;IAChB,MAAM,EACF,MAAM,GACN,UAAU,GACV,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,eAAe,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAClE,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,oBAAoB,CAAC,EAAE,GAAG,CAAA;IAC1B,eAAe,CAAC,EAAE;QAChB,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;CACF,CAAA;AA2ED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,gBAAgB,CAkF1E;AAED,KAAK,wBAAwB,GAAG,gBAAgB,GAAG;IACjD,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,GAAG,IAAI,GAC5B,wBAAwB,CAoK1B"}
|
|
@@ -105,7 +105,12 @@ export function useReviews(props) {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
const fetcher = (props === null || props === void 0 ? void 0 : props.fetcher) || ((url) => fetch(url).then((res) => res.json()));
|
|
108
|
-
const { data, error } = useSWR(url, fetcher
|
|
108
|
+
const { data, error } = useSWR(url, fetcher, {
|
|
109
|
+
revalidateOnFocus: false,
|
|
110
|
+
revalidateOnReconnect: false,
|
|
111
|
+
revalidateIfStale: false,
|
|
112
|
+
dedupingInterval: 60000,
|
|
113
|
+
});
|
|
109
114
|
return {
|
|
110
115
|
data: data || {},
|
|
111
116
|
error,
|
|
@@ -191,7 +196,12 @@ export function useReviewsInfinite(props) {
|
|
|
191
196
|
}
|
|
192
197
|
};
|
|
193
198
|
const fetcher = (props === null || props === void 0 ? void 0 : props.fetcher) || ((url) => fetch(url).then((res) => res.json()));
|
|
194
|
-
const { data: dataInfinite, error: errorInfinite, size, setSize, isLoading, isValidating, } = useSWRInfinite(getKey, fetcher
|
|
199
|
+
const { data: dataInfinite, error: errorInfinite, size, setSize, isLoading, isValidating, } = useSWRInfinite(getKey, fetcher, {
|
|
200
|
+
revalidateOnFocus: false,
|
|
201
|
+
revalidateOnReconnect: false,
|
|
202
|
+
revalidateIfStale: false,
|
|
203
|
+
dedupingInterval: 60000,
|
|
204
|
+
});
|
|
195
205
|
let mergedReviews = dataInfinite
|
|
196
206
|
? dataInfinite
|
|
197
207
|
.filter((page) => page && page.reviews)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-sort-filter.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-sort-filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExE,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,WAAW,EACX,mBAAmB,EACpB,MAAM,wCAAwC,CAAA;AAI/C,UAAU,kBAAkB;IAC1B,WAAW,EAAE,QAAQ,CAAA;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,KAAK,MAAM,GAAG,CAAA;IAC/C,YAAY,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CACzC;AAED,UAAU,QAAQ;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,cAAc,EAAE,CAAA;IAC/B,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;CACxC;AAED,UAAU,mBAAmB;IAC3B,cAAc,EAAE,cAAc,CAAA;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;CACzB;AAED,UAAU,cAAc;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,2BAA2B,EAAE,2BAA2B,CAAA;IACxD,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAClC,qBAAqB,EAAE,OAAO,CAAA;IAC9B,YAAY,EAAE,WAAW,EAAE,CAAA;CAC5B;AAeD,QAAA,MAAM,aAAa,+DAKhB,kBAAkB,KAAG,
|
|
1
|
+
{"version":3,"file":"use-sort-filter.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-sort-filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExE,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,WAAW,EACX,mBAAmB,EACpB,MAAM,wCAAwC,CAAA;AAI/C,UAAU,kBAAkB;IAC1B,WAAW,EAAE,QAAQ,CAAA;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,KAAK,MAAM,GAAG,CAAA;IAC/C,YAAY,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CACzC;AAED,UAAU,QAAQ;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,cAAc,EAAE,CAAA;IAC/B,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;CACxC;AAED,UAAU,mBAAmB;IAC3B,cAAc,EAAE,cAAc,CAAA;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;CACzB;AAED,UAAU,cAAc;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,2BAA2B,EAAE,2BAA2B,CAAA;IACxD,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAClC,qBAAqB,EAAE,OAAO,CAAA;IAC9B,YAAY,EAAE,WAAW,EAAE,CAAA;CAC5B;AAeD,QAAA,MAAM,aAAa,+DAKhB,kBAAkB,KAAG,mBAwGvB,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -40,7 +40,12 @@ const useSortFilter = ({ initialData, queryVariables, dynamicKey, searchClient,
|
|
|
40
40
|
const shouldFetch = queryVariables && Object.keys(queryVariables).length > 0 && !shouldSkipFetch;
|
|
41
41
|
const { data: sortFilterData, isLoading } = useSWR(shouldFetch
|
|
42
42
|
? { apiUrl: initialData.sortFilterURL, body: Object.assign({}, queryVariables) }
|
|
43
|
-
: null, ({ apiUrl, body }) => fetcher({ apiURL: apiUrl, body }), {
|
|
43
|
+
: null, ({ apiUrl, body }) => fetcher({ apiURL: apiUrl, body }), {
|
|
44
|
+
revalidateOnFocus: false,
|
|
45
|
+
revalidateOnReconnect: false,
|
|
46
|
+
revalidateIfStale: false,
|
|
47
|
+
dedupingInterval: 60000,
|
|
48
|
+
});
|
|
44
49
|
const getKey = () => {
|
|
45
50
|
if (shouldSkipFetch ||
|
|
46
51
|
!sortFilterData ||
|
|
@@ -33,11 +33,12 @@ declare const DrawerContentBase: React.ForwardRefExoticComponent<Omit<React.Deta
|
|
|
33
33
|
containerRef?: HTMLElement | undefined;
|
|
34
34
|
maxHeight?: string | undefined;
|
|
35
35
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
36
|
+
declare const DrawerTitle: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-dialog").DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
36
37
|
declare const DrawerFooter: {
|
|
37
38
|
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
38
39
|
displayName: string;
|
|
39
40
|
};
|
|
40
|
-
declare const DrawerDescription: React.ForwardRefExoticComponent<Omit<
|
|
41
|
+
declare const DrawerDescription: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-dialog").DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
41
42
|
type DrawerHeaderProps = {
|
|
42
43
|
iconLeftName?: string;
|
|
43
44
|
iconRightName?: string;
|
|
@@ -46,5 +47,5 @@ type DrawerHeaderProps = {
|
|
|
46
47
|
};
|
|
47
48
|
declare const DrawerHeader: ({ title, iconLeftName, iconRightName, onCloseClick, }: DrawerHeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
48
49
|
declare const DrawerContent: ({ children, className, ...props }: React.HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
|
|
49
|
-
export { Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose, DrawerContentBase, DrawerContent, DrawerFooter, DrawerDescription, DrawerHeader, };
|
|
50
|
+
export { Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose, DrawerContentBase, DrawerContent, DrawerFooter, DrawerTitle, DrawerDescription, DrawerHeader, };
|
|
50
51
|
//# sourceMappingURL=drawer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../components/ui/drawer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,MAAM,CAAA;AAKhD,KAAK,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG;IACnE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,YAAY,CAAC,EAAE,WAAW,CAAA;CAC3B,CAAA;AAED,KAAK,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG;IACjE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,QAAA,MAAM,aAAa,8BAA0D,CAAA;AAG7E,QAAA,MAAM,YAAY;iCAAgC,iBAAiB;;CAgBlE,CAAA;AAGD,QAAA,MAAM,WAAW,4BAAsD,CAAA;AAGvE,KAAK,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IACrE,YAAY,CAAC,EAAE,WAAW,CAAA;CAC3B,CAAA;AAED,QAAA,MAAM,MAAM;0CAAyC,WAAW;;CAS/D,CAAA;AAOD,QAAA,MAAM,aAAa;;wCAYlB,CAAA;AAWD,QAAA,MAAM,iBAAiB;;;;;;wCA2CtB,CAAA;
|
|
1
|
+
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../components/ui/drawer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,MAAM,CAAA;AAKhD,KAAK,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG;IACnE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,YAAY,CAAC,EAAE,WAAW,CAAA;CAC3B,CAAA;AAED,KAAK,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG;IACjE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,QAAA,MAAM,aAAa,8BAA0D,CAAA;AAG7E,QAAA,MAAM,YAAY;iCAAgC,iBAAiB;;CAgBlE,CAAA;AAGD,QAAA,MAAM,WAAW,4BAAsD,CAAA;AAGvE,KAAK,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG;IACrE,YAAY,CAAC,EAAE,WAAW,CAAA;CAC3B,CAAA;AAED,QAAA,MAAM,MAAM;0CAAyC,WAAW;;CAS/D,CAAA;AAOD,QAAA,MAAM,aAAa;;wCAYlB,CAAA;AAWD,QAAA,MAAM,iBAAiB;;;;;;wCA2CtB,CAAA;AAWD,QAAA,MAAM,WAAW,qLAYf,CAAA;AAGF,QAAA,MAAM,YAAY;8BAGf,MAAM,cAAc,CAAC,cAAc,CAAC;;CAQtC,CAAA;AAGD,QAAA,MAAM,iBAAiB,+LASrB,CAAA;AAGF,KAAK,iBAAiB,GAAG;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,QAAA,MAAM,YAAY,0DAKf,iBAAiB,4CA8BnB,CAAA;AAED,QAAA,MAAM,aAAa,sCAIhB,MAAM,cAAc,CAAC,cAAc,CAAC,4CAMtC,CAAA;AAED,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,CAAA"}
|
|
@@ -71,9 +71,9 @@ const DrawerFooter = (_a) => {
|
|
|
71
71
|
DrawerFooter.displayName = "DrawerFooter";
|
|
72
72
|
const DrawerDescription = React.forwardRef((_a, ref) => {
|
|
73
73
|
var { className } = _a, props = __rest(_a, ["className"]);
|
|
74
|
-
return (_jsx(
|
|
74
|
+
return (_jsx(DrawerPrimitive.Description, Object.assign({ ref: ref, className: cn("text-sm text-muted-foreground", className) }, props)));
|
|
75
75
|
});
|
|
76
|
-
DrawerDescription.displayName =
|
|
76
|
+
DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
|
|
77
77
|
const DrawerHeader = ({ title, iconLeftName, iconRightName, onCloseClick, }) => {
|
|
78
78
|
return (_jsxs(DrawerHeaderBase, Object.assign({ className: "p-4 text-center flex justify-between" }, { children: [iconLeftName ? (_jsx(DrawerClose, Object.assign({ className: "h-6 w-6 p-0", onClick: onCloseClick }, { children: _jsx(Icon, { name: iconLeftName, color: "coreColors-secondaryIcon", className: "h-6 w-6 p-0", size: "md" }) }))) : (_jsx("div", { className: "w-6" })), _jsx(DrawerTitle, { children: title }), iconRightName ? (_jsx(DrawerClose, Object.assign({ className: "h-6 w-6 p-0", onClick: onCloseClick }, { children: _jsx(Icon, { name: iconRightName, color: "coreColors-secondaryIcon", className: "h-6 w-6 p-0", size: "md" }) }))) : (_jsx("div", { className: "w-6" }))] })));
|
|
79
79
|
};
|
|
@@ -81,4 +81,4 @@ const DrawerContent = (_a) => {
|
|
|
81
81
|
var { children, className } = _a, props = __rest(_a, ["children", "className"]);
|
|
82
82
|
return (_jsx("div", Object.assign({ className: cn("h-full overflow-scroll", className) }, props, { children: children })));
|
|
83
83
|
};
|
|
84
|
-
export { Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose, DrawerContentBase, DrawerContent, DrawerFooter, DrawerDescription, DrawerHeader, };
|
|
84
|
+
export { Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose, DrawerContentBase, DrawerContent, DrawerFooter, DrawerTitle, DrawerDescription, DrawerHeader, };
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export * from "./components/hooks/use-infinite-wishlist";
|
|
|
16
16
|
export * from "./components/hooks/use-recommendations";
|
|
17
17
|
export * from "./components/hooks/use-search-analytics-open-product";
|
|
18
18
|
export * from "./components/hooks/use-products";
|
|
19
|
+
export * from "./components/hooks/use-cache";
|
|
19
20
|
export * from "./components/hooks/use-personalized-cluster-feed";
|
|
20
21
|
export * from "./components/hooks/use-order-details";
|
|
21
22
|
export * from "./components/hooks/use-scroll-direction";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ export * from "./components/hooks/use-infinite-wishlist";
|
|
|
15
15
|
export * from "./components/hooks/use-recommendations";
|
|
16
16
|
export * from "./components/hooks/use-search-analytics-open-product";
|
|
17
17
|
export * from "./components/hooks/use-products";
|
|
18
|
+
export * from "./components/hooks/use-cache";
|
|
18
19
|
export * from "./components/hooks/use-personalized-cluster-feed";
|
|
19
20
|
export * from "./components/hooks/use-order-details";
|
|
20
21
|
export * from "./components/hooks/use-scroll-direction";
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/utils.js
CHANGED
|
@@ -339,6 +339,7 @@ const WISHLIST_INTEGRATION_NAMES = new Set([
|
|
|
339
339
|
"tapcart-wishlist-api",
|
|
340
340
|
"grove-wishlist",
|
|
341
341
|
"swym",
|
|
342
|
+
"swish-wishlist",
|
|
342
343
|
]);
|
|
343
344
|
export const isFavoriteIntegrationEnabled = (integrations) => {
|
|
344
345
|
return integrations.some((integration) => WISHLIST_INTEGRATION_NAMES.has(integration.name) && integration.enabled);
|
|
@@ -363,6 +364,7 @@ export const supportsMultipleWishlists = (integration) => {
|
|
|
363
364
|
case "tapcart-wishlist-api":
|
|
364
365
|
case "grove-wishlist":
|
|
365
366
|
case "swym":
|
|
367
|
+
case "swish-wishlist":
|
|
366
368
|
return true;
|
|
367
369
|
default:
|
|
368
370
|
return false;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { transformOrderDetails } from "../components/hooks/use-order-details";
|
|
1
|
+
import { transformOrderDetails, getEffectiveLineQuantity, } from "../components/hooks/use-order-details";
|
|
2
2
|
// jsdom does not implement crypto.randomUUID, which transformOrderDetails
|
|
3
3
|
// uses for line uniqueIds
|
|
4
4
|
beforeAll(() => {
|
|
@@ -63,3 +63,86 @@ describe("transformOrderDetails — Shopify Order Editing (currentQuantity)", ()
|
|
|
63
63
|
expect(orderDetails.cart.lines[0].quantity).toBe(1);
|
|
64
64
|
});
|
|
65
65
|
});
|
|
66
|
+
describe("transformOrderDetails — New Customer Account API (no currentQuantity)", () => {
|
|
67
|
+
// Modeled on real prod data (Pink Palm Puff order #PPP95701331): the
|
|
68
|
+
// Customer Account API LineItem has NO `currentQuantity` — a line removed via
|
|
69
|
+
// Order Editing keeps `quantity: 1` and signals removal only via
|
|
70
|
+
// `refundableQuantity: 0`. The kept line has `refundableQuantity: 1`.
|
|
71
|
+
const editedOrder = {
|
|
72
|
+
id: "gid://shopify/Order/10929524212006",
|
|
73
|
+
currency: "USD",
|
|
74
|
+
edited: true,
|
|
75
|
+
financialStatus: "PAID",
|
|
76
|
+
refunds: [],
|
|
77
|
+
totalRefunded: { amount: "0.0", currencyCode: "USD" },
|
|
78
|
+
totalAmount: "63.88",
|
|
79
|
+
lineItems: [
|
|
80
|
+
{
|
|
81
|
+
title: "Couture Carryall in Blush Bay (Reversible)",
|
|
82
|
+
quantity: 1,
|
|
83
|
+
refundableQuantity: 0,
|
|
84
|
+
price: { amount: "99.0", currencyCode: "USD" },
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
title: "Malibu Slippers in Blush Bay",
|
|
88
|
+
quantity: 1,
|
|
89
|
+
refundableQuantity: 1,
|
|
90
|
+
price: { amount: "59.0", currencyCode: "USD" },
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
};
|
|
94
|
+
it("hides items removed via order editing on an edited order", () => {
|
|
95
|
+
const { orderDetails, checkoutData } = transformOrderDetails(editedOrder);
|
|
96
|
+
expect(orderDetails.cart.lines).toHaveLength(1);
|
|
97
|
+
expect(orderDetails.cart.lines[0].title).toBe("Malibu Slippers in Blush Bay");
|
|
98
|
+
expect(checkoutData.lineItems).toHaveLength(1);
|
|
99
|
+
expect(checkoutData.lineItems[0].title).toBe("Malibu Slippers in Blush Bay");
|
|
100
|
+
});
|
|
101
|
+
it("does NOT hide items on an UN-edited fully-refunded order", () => {
|
|
102
|
+
// Real prod data: cancelled+refunded order #PPP95700931 — edited:false,
|
|
103
|
+
// both lines refundableQuantity:0. These must still display in full.
|
|
104
|
+
const refundedOrder = Object.assign(Object.assign({}, editedOrder), { id: "gid://shopify/Order/10929514119462", edited: false, lineItems: editedOrder.lineItems.map((li) => (Object.assign(Object.assign({}, li), { refundableQuantity: 0 }))) });
|
|
105
|
+
const { orderDetails } = transformOrderDetails(refundedOrder);
|
|
106
|
+
expect(orderDetails.cart.lines).toHaveLength(2);
|
|
107
|
+
});
|
|
108
|
+
it("does NOT hide items on an EDITED order that also has a refund/return", () => {
|
|
109
|
+
// `edited` is sticky in Shopify and `refundableQuantity` drops on refunds
|
|
110
|
+
// too, so an edited-then-returned order must NOT collapse: fall back to
|
|
111
|
+
// ordered quantity rather than blank the order / hide bought items.
|
|
112
|
+
const editedAndRefunded = Object.assign(Object.assign({}, editedOrder), { financialStatus: "REFUNDED", totalRefunded: { amount: "171.06", currencyCode: "USD" }, refunds: [{ id: "gid://shopify/Refund/1", createdAt: "2026-07-08" }], lineItems: editedOrder.lineItems.map((li) => (Object.assign(Object.assign({}, li), { refundableQuantity: 0 }))) });
|
|
113
|
+
const { orderDetails } = transformOrderDetails(editedAndRefunded);
|
|
114
|
+
expect(orderDetails.cart.lines).toHaveLength(2);
|
|
115
|
+
});
|
|
116
|
+
it("reduces (not hides) a quantity edited down on an edited order", () => {
|
|
117
|
+
const { orderDetails } = transformOrderDetails(Object.assign(Object.assign({}, editedOrder), { lineItems: [
|
|
118
|
+
{
|
|
119
|
+
title: "Pink Palm Pajamas",
|
|
120
|
+
quantity: 3,
|
|
121
|
+
refundableQuantity: 2,
|
|
122
|
+
price: { amount: "95.0", currencyCode: "USD" },
|
|
123
|
+
},
|
|
124
|
+
] }));
|
|
125
|
+
expect(orderDetails.cart.lines).toHaveLength(1);
|
|
126
|
+
expect(orderDetails.cart.lines[0].quantity).toBe(2);
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
describe("getEffectiveLineQuantity", () => {
|
|
130
|
+
it("prefers currentQuantity when present (Storefront API)", () => {
|
|
131
|
+
expect(getEffectiveLineQuantity({ edited: true }, { currentQuantity: 0, quantity: 1, refundableQuantity: 1 })).toBe(0);
|
|
132
|
+
});
|
|
133
|
+
it("uses refundableQuantity on edited orders without currentQuantity", () => {
|
|
134
|
+
expect(getEffectiveLineQuantity({ edited: true }, { quantity: 1, refundableQuantity: 0 })).toBe(0);
|
|
135
|
+
});
|
|
136
|
+
it("uses quantity on un-edited orders even when refundableQuantity differs", () => {
|
|
137
|
+
expect(getEffectiveLineQuantity({ edited: false }, { quantity: 3, refundableQuantity: 0 })).toBe(3);
|
|
138
|
+
});
|
|
139
|
+
it("ignores refundableQuantity on an edited order with a refund (refunds array)", () => {
|
|
140
|
+
expect(getEffectiveLineQuantity({ edited: true, refunds: [{ id: "r1" }] }, { quantity: 1, refundableQuantity: 0 })).toBe(1);
|
|
141
|
+
});
|
|
142
|
+
it("ignores refundableQuantity on an edited order with a refund (financialStatus)", () => {
|
|
143
|
+
expect(getEffectiveLineQuantity({ edited: true, financialStatus: "PARTIALLY_REFUNDED" }, { quantity: 3, refundableQuantity: 1 })).toBe(3);
|
|
144
|
+
});
|
|
145
|
+
it("ignores refundableQuantity on an edited order with totalRefunded > 0", () => {
|
|
146
|
+
expect(getEffectiveLineQuantity({ edited: true, totalRefunded: { amount: "50.0" } }, { quantity: 2, refundableQuantity: 0 })).toBe(2);
|
|
147
|
+
});
|
|
148
|
+
});
|