@instockng/storefront-ui 1.0.53 → 1.0.55
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/Checkout.d.ts +2 -1
- package/dist/components/Checkout.d.ts.map +1 -1
- package/dist/components/ShoppingCart.d.ts +4 -1
- package/dist/components/ShoppingCart.d.ts.map +1 -1
- package/dist/index101.mjs +1 -1
- package/dist/index102.mjs +1 -1
- package/dist/index103.mjs +8 -8
- package/dist/index104.mjs +6 -6
- package/dist/index105.mjs +3 -3
- package/dist/index106.mjs +1 -1
- package/dist/index107.mjs +1 -1
- package/dist/index108.mjs +1 -1
- package/dist/index109.mjs +2 -2
- package/dist/index11.mjs +74 -67
- package/dist/index110.mjs +2 -2
- package/dist/index111.mjs +3 -3
- package/dist/index112.mjs +1 -1
- package/dist/index113.mjs +3 -3
- package/dist/index114.mjs +2 -2
- package/dist/index115.mjs +2 -2
- package/dist/index116.mjs +1 -1
- package/dist/index117.mjs +3 -3
- package/dist/index118.mjs +1 -1
- package/dist/index119.mjs +1 -1
- package/dist/index120.mjs +3 -3
- package/dist/index121.mjs +2 -2
- package/dist/index122.mjs +4 -4
- package/dist/index123.mjs +1 -1
- package/dist/index124.mjs +3 -3
- package/dist/index125.mjs +4 -4
- package/dist/index126.mjs +1 -1
- package/dist/index127.mjs +1 -1
- package/dist/index128.mjs +1 -1
- package/dist/index129.mjs +1 -1
- package/dist/index13.mjs +266 -238
- package/dist/index130.mjs +1 -1
- package/dist/index131.mjs +1 -1
- package/dist/index132.mjs +1 -1
- package/dist/index133.mjs +2 -2
- package/dist/index134.mjs +3 -3
- package/dist/index137.mjs +1 -1
- package/dist/index139.mjs +2 -21
- package/dist/index140.mjs +2 -56
- package/dist/index141.mjs +2 -29
- package/dist/index142.mjs +2 -7
- package/dist/index143.mjs +16 -50
- package/dist/index144.mjs +32 -6
- package/dist/index145.mjs +37 -11
- package/dist/index146.mjs +18 -7
- package/dist/index147.mjs +18 -28
- package/dist/index148.mjs +2 -2
- package/dist/index149.mjs +20 -70
- package/dist/index150.mjs +42 -163
- package/dist/index152.mjs +30 -2
- package/dist/index153.mjs +18 -2
- package/dist/index154.mjs +2 -2
- package/dist/index155.mjs +2 -18
- package/dist/index156.mjs +2 -32
- package/dist/index157.mjs +2 -38
- package/dist/index158.mjs +67 -13
- package/dist/index159.mjs +2 -18
- package/dist/index160.mjs +53 -2
- package/dist/index161.mjs +2 -20
- package/dist/index162.mjs +29 -39
- package/dist/index163.mjs +152 -2
- package/dist/index164.mjs +2 -30
- package/dist/index165.mjs +2 -18
- package/dist/index166.mjs +19 -2
- package/dist/index167.mjs +2 -2
- package/dist/index168.mjs +2 -2
- package/dist/index169.mjs +26 -2
- package/dist/index170.mjs +2 -72
- package/dist/index171.mjs +2 -2
- package/dist/index172.mjs +20 -49
- package/dist/index173.mjs +23 -2
- package/dist/index174.mjs +2 -36
- package/dist/index175.mjs +2 -152
- package/dist/index176.mjs +2 -2
- package/dist/index177.mjs +23 -2
- package/dist/index178.mjs +2 -19
- package/dist/index179.mjs +23 -2
- package/dist/index181.mjs +2 -26
- package/dist/index182.mjs +2 -2
- package/dist/index183.mjs +23 -2
- package/dist/index184.mjs +2 -24
- package/dist/index185.mjs +15 -15
- package/dist/index186.mjs +2 -2
- package/dist/index187.mjs +2 -2
- package/dist/index188.mjs +2 -2
- package/dist/index189.mjs +2 -23
- package/dist/index190.mjs +2 -2
- package/dist/index191.mjs +2 -23
- package/dist/index192.mjs +2 -2
- package/dist/index193.mjs +2 -2
- package/dist/index194.mjs +127 -2
- package/dist/index195.mjs +2 -23
- package/dist/index196.mjs +74 -2
- package/dist/index197.mjs +71 -20
- package/dist/index198.mjs +21 -2
- package/dist/index199.mjs +56 -2
- package/dist/index200.mjs +29 -2
- package/dist/index201.mjs +7 -2
- package/dist/index202.mjs +52 -2
- package/dist/index203.mjs +6 -2
- package/dist/index204.mjs +12 -2
- package/dist/index205.mjs +7 -2
- package/dist/index206.mjs +28 -127
- package/dist/index207.mjs +2 -2
- package/dist/index208.mjs +69 -73
- package/dist/index209.mjs +164 -71
- package/dist/index210.mjs +2 -31
- package/dist/index211.mjs +2 -11
- package/dist/index212.mjs +2 -4
- package/dist/index213.mjs +2 -4
- package/dist/index214.mjs +2 -13
- package/dist/index215.mjs +2 -7
- package/dist/index216.mjs +107 -11
- package/dist/index217.mjs +2 -5
- package/dist/index218.mjs +2 -33
- package/dist/index219.mjs +35 -29
- package/dist/index220.mjs +2 -28
- package/dist/index221.mjs +241 -58
- package/dist/index222.mjs +2 -2
- package/dist/index223.mjs +33 -2
- package/dist/index224.mjs +65 -2
- package/dist/index225.mjs +25 -2
- package/dist/index226.mjs +2 -2
- package/dist/index228.mjs +2 -2
- package/dist/index229.mjs +2 -2
- package/dist/index230.mjs +2 -108
- package/dist/index231.mjs +2 -2
- package/dist/index232.mjs +2 -2
- package/dist/index233.mjs +2 -37
- package/dist/index234.mjs +2 -2
- package/dist/index235.mjs +2 -2
- package/dist/index236.mjs +2 -244
- package/dist/index237.mjs +2 -2
- package/dist/index238.mjs +4 -33
- package/dist/index239.mjs +2 -65
- package/dist/index240.mjs +2 -25
- package/dist/index241.mjs +31 -2
- package/dist/index242.mjs +11 -2
- package/dist/index243.mjs +4 -2
- package/dist/index244.mjs +4 -2
- package/dist/index245.mjs +13 -2
- package/dist/index246.mjs +7 -2
- package/dist/index247.mjs +12 -2
- package/dist/index248.mjs +5 -2
- package/dist/index249.mjs +33 -2
- package/dist/index250.mjs +31 -4
- package/dist/index251.mjs +28 -2
- package/dist/index252.mjs +61 -2
- package/dist/index253.mjs +2 -3
- package/dist/index254.mjs +2 -2
- package/dist/index255.mjs +18 -2
- package/dist/index256.mjs +46 -16
- package/dist/index257.mjs +2 -13
- package/dist/index258.mjs +2 -6
- package/dist/index259.mjs +2 -30
- package/dist/index261.mjs +91 -2
- package/dist/index262.mjs +2 -18
- package/dist/index263.mjs +3 -47
- package/dist/index264.mjs +2 -2
- package/dist/index265.mjs +2 -2
- package/dist/index266.mjs +17 -2
- package/dist/index267.mjs +13 -2
- package/dist/index268.mjs +6 -91
- package/dist/index269.mjs +30 -2
- package/dist/index33.mjs +1 -1
- package/dist/index34.mjs +1 -1
- package/dist/index35.mjs +1 -1
- package/dist/index36.mjs +1 -1
- package/dist/index37.mjs +1 -1
- package/dist/index38.mjs +2 -2
- package/dist/index40.mjs +1 -1
- package/dist/index43.mjs +3 -3
- package/dist/index47.mjs +1 -1
- package/dist/index52.mjs +17 -17
- package/dist/index53.mjs +2 -2
- package/dist/index54.mjs +1 -1
- package/dist/index55.mjs +1 -1
- package/dist/index56.mjs +1 -1
- package/dist/index57.mjs +1 -1
- package/dist/index58.mjs +1 -1
- package/dist/index59.mjs +1 -1
- package/dist/index60.mjs +1 -1
- package/dist/index61.mjs +1 -1
- package/dist/index62.mjs +1 -1
- package/dist/index63.mjs +1 -1
- package/dist/index64.mjs +1 -1
- package/dist/index65.mjs +23 -4
- package/dist/index66.mjs +2 -24
- package/dist/index67.mjs +7 -7
- package/dist/index68.mjs +23 -2
- package/dist/index69.mjs +73 -21
- package/dist/index70.mjs +14 -74
- package/dist/index71.mjs +62 -14
- package/dist/index72.mjs +4 -62
- package/dist/index73.mjs +2 -34
- package/dist/index74.mjs +5 -42
- package/dist/index75.mjs +1134 -2
- package/dist/index76.mjs +19 -5
- package/dist/index77.mjs +40 -1119
- package/dist/index78.mjs +27 -14
- package/dist/index79.mjs +2 -55
- package/dist/index80.mjs +2 -33
- package/dist/index81.mjs +34 -2
- package/dist/index82.mjs +38 -230
- package/dist/index83.mjs +233 -4
- package/dist/index84.mjs +5 -133
- package/dist/index85.mjs +129 -63
- package/dist/index86.mjs +67 -86
- package/dist/index87.mjs +85 -27
- package/dist/index88.mjs +28 -8
- package/dist/index89.mjs +8 -74
- package/dist/index90.mjs +74 -3
- package/dist/index91.mjs +4 -2
- package/dist/index92.mjs +2 -83
- package/dist/index93.mjs +81 -52
- package/dist/index94.mjs +53 -5
- package/dist/index95.mjs +5 -4
- package/dist/index96.mjs +4 -178
- package/dist/index97.mjs +174 -48
- package/dist/index98.mjs +51 -67
- package/dist/index99.mjs +69 -2
- package/package.json +2 -2
- package/src/components/Checkout.tsx +36 -3
- package/src/components/ShoppingCart.tsx +10 -3
package/dist/index98.mjs
CHANGED
|
@@ -1,72 +1,56 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
PartialContent: 206,
|
|
14
|
-
MultiStatus: 207,
|
|
15
|
-
AlreadyReported: 208,
|
|
16
|
-
ImUsed: 226,
|
|
17
|
-
MultipleChoices: 300,
|
|
18
|
-
MovedPermanently: 301,
|
|
19
|
-
Found: 302,
|
|
20
|
-
SeeOther: 303,
|
|
21
|
-
NotModified: 304,
|
|
22
|
-
UseProxy: 305,
|
|
23
|
-
Unused: 306,
|
|
24
|
-
TemporaryRedirect: 307,
|
|
25
|
-
PermanentRedirect: 308,
|
|
26
|
-
BadRequest: 400,
|
|
27
|
-
Unauthorized: 401,
|
|
28
|
-
PaymentRequired: 402,
|
|
29
|
-
Forbidden: 403,
|
|
30
|
-
NotFound: 404,
|
|
31
|
-
MethodNotAllowed: 405,
|
|
32
|
-
NotAcceptable: 406,
|
|
33
|
-
ProxyAuthenticationRequired: 407,
|
|
34
|
-
RequestTimeout: 408,
|
|
35
|
-
Conflict: 409,
|
|
36
|
-
Gone: 410,
|
|
37
|
-
LengthRequired: 411,
|
|
38
|
-
PreconditionFailed: 412,
|
|
39
|
-
PayloadTooLarge: 413,
|
|
40
|
-
UriTooLong: 414,
|
|
41
|
-
UnsupportedMediaType: 415,
|
|
42
|
-
RangeNotSatisfiable: 416,
|
|
43
|
-
ExpectationFailed: 417,
|
|
44
|
-
ImATeapot: 418,
|
|
45
|
-
MisdirectedRequest: 421,
|
|
46
|
-
UnprocessableEntity: 422,
|
|
47
|
-
Locked: 423,
|
|
48
|
-
FailedDependency: 424,
|
|
49
|
-
TooEarly: 425,
|
|
50
|
-
UpgradeRequired: 426,
|
|
51
|
-
PreconditionRequired: 428,
|
|
52
|
-
TooManyRequests: 429,
|
|
53
|
-
RequestHeaderFieldsTooLarge: 431,
|
|
54
|
-
UnavailableForLegalReasons: 451,
|
|
55
|
-
InternalServerError: 500,
|
|
56
|
-
NotImplemented: 501,
|
|
57
|
-
BadGateway: 502,
|
|
58
|
-
ServiceUnavailable: 503,
|
|
59
|
-
GatewayTimeout: 504,
|
|
60
|
-
HttpVersionNotSupported: 505,
|
|
61
|
-
VariantAlsoNegotiates: 506,
|
|
62
|
-
InsufficientStorage: 507,
|
|
63
|
-
LoopDetected: 508,
|
|
64
|
-
NotExtended: 510,
|
|
65
|
-
NetworkAuthenticationRequired: 511
|
|
2
|
+
import s from "./index83.mjs";
|
|
3
|
+
import m from "./index207.mjs";
|
|
4
|
+
import u from "./index208.mjs";
|
|
5
|
+
import { getFetch as b } from "./index209.mjs";
|
|
6
|
+
import d from "./index94.mjs";
|
|
7
|
+
const p = {
|
|
8
|
+
http: m,
|
|
9
|
+
xhr: u,
|
|
10
|
+
fetch: {
|
|
11
|
+
get: b
|
|
12
|
+
}
|
|
66
13
|
};
|
|
67
|
-
|
|
68
|
-
e
|
|
14
|
+
s.forEach(p, (e, o) => {
|
|
15
|
+
if (e) {
|
|
16
|
+
try {
|
|
17
|
+
Object.defineProperty(e, "name", { value: o });
|
|
18
|
+
} catch {
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(e, "adapterName", { value: o });
|
|
21
|
+
}
|
|
69
22
|
});
|
|
23
|
+
const f = (e) => `- ${e}`, g = (e) => s.isFunction(e) || e === null || e === !1, y = {
|
|
24
|
+
getAdapter: (e, o) => {
|
|
25
|
+
e = s.isArray(e) ? e : [e];
|
|
26
|
+
const { length: a } = e;
|
|
27
|
+
let i, t;
|
|
28
|
+
const c = {};
|
|
29
|
+
for (let r = 0; r < a; r++) {
|
|
30
|
+
i = e[r];
|
|
31
|
+
let n;
|
|
32
|
+
if (t = i, !g(i) && (t = p[(n = String(i)).toLowerCase()], t === void 0))
|
|
33
|
+
throw new d(`Unknown adapter '${n}'`);
|
|
34
|
+
if (t && (s.isFunction(t) || (t = t.get(o))))
|
|
35
|
+
break;
|
|
36
|
+
c[n || "#" + r] = t;
|
|
37
|
+
}
|
|
38
|
+
if (!t) {
|
|
39
|
+
const r = Object.entries(c).map(
|
|
40
|
+
([l, h]) => `adapter ${l} ` + (h === !1 ? "is not supported by the environment" : "is not available in the build")
|
|
41
|
+
);
|
|
42
|
+
let n = a ? r.length > 1 ? `since :
|
|
43
|
+
` + r.map(f).join(`
|
|
44
|
+
`) : " " + f(r[0]) : "as no adapter specified";
|
|
45
|
+
throw new d(
|
|
46
|
+
"There is no suitable adapter to dispatch the request " + n,
|
|
47
|
+
"ERR_NOT_SUPPORT"
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
return t;
|
|
51
|
+
},
|
|
52
|
+
adapters: p
|
|
53
|
+
};
|
|
70
54
|
export {
|
|
71
|
-
|
|
55
|
+
y as default
|
|
72
56
|
};
|
package/dist/index99.mjs
CHANGED
|
@@ -1,5 +1,72 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
2
|
+
const e = {
|
|
3
|
+
Continue: 100,
|
|
4
|
+
SwitchingProtocols: 101,
|
|
5
|
+
Processing: 102,
|
|
6
|
+
EarlyHints: 103,
|
|
7
|
+
Ok: 200,
|
|
8
|
+
Created: 201,
|
|
9
|
+
Accepted: 202,
|
|
10
|
+
NonAuthoritativeInformation: 203,
|
|
11
|
+
NoContent: 204,
|
|
12
|
+
ResetContent: 205,
|
|
13
|
+
PartialContent: 206,
|
|
14
|
+
MultiStatus: 207,
|
|
15
|
+
AlreadyReported: 208,
|
|
16
|
+
ImUsed: 226,
|
|
17
|
+
MultipleChoices: 300,
|
|
18
|
+
MovedPermanently: 301,
|
|
19
|
+
Found: 302,
|
|
20
|
+
SeeOther: 303,
|
|
21
|
+
NotModified: 304,
|
|
22
|
+
UseProxy: 305,
|
|
23
|
+
Unused: 306,
|
|
24
|
+
TemporaryRedirect: 307,
|
|
25
|
+
PermanentRedirect: 308,
|
|
26
|
+
BadRequest: 400,
|
|
27
|
+
Unauthorized: 401,
|
|
28
|
+
PaymentRequired: 402,
|
|
29
|
+
Forbidden: 403,
|
|
30
|
+
NotFound: 404,
|
|
31
|
+
MethodNotAllowed: 405,
|
|
32
|
+
NotAcceptable: 406,
|
|
33
|
+
ProxyAuthenticationRequired: 407,
|
|
34
|
+
RequestTimeout: 408,
|
|
35
|
+
Conflict: 409,
|
|
36
|
+
Gone: 410,
|
|
37
|
+
LengthRequired: 411,
|
|
38
|
+
PreconditionFailed: 412,
|
|
39
|
+
PayloadTooLarge: 413,
|
|
40
|
+
UriTooLong: 414,
|
|
41
|
+
UnsupportedMediaType: 415,
|
|
42
|
+
RangeNotSatisfiable: 416,
|
|
43
|
+
ExpectationFailed: 417,
|
|
44
|
+
ImATeapot: 418,
|
|
45
|
+
MisdirectedRequest: 421,
|
|
46
|
+
UnprocessableEntity: 422,
|
|
47
|
+
Locked: 423,
|
|
48
|
+
FailedDependency: 424,
|
|
49
|
+
TooEarly: 425,
|
|
50
|
+
UpgradeRequired: 426,
|
|
51
|
+
PreconditionRequired: 428,
|
|
52
|
+
TooManyRequests: 429,
|
|
53
|
+
RequestHeaderFieldsTooLarge: 431,
|
|
54
|
+
UnavailableForLegalReasons: 451,
|
|
55
|
+
InternalServerError: 500,
|
|
56
|
+
NotImplemented: 501,
|
|
57
|
+
BadGateway: 502,
|
|
58
|
+
ServiceUnavailable: 503,
|
|
59
|
+
GatewayTimeout: 504,
|
|
60
|
+
HttpVersionNotSupported: 505,
|
|
61
|
+
VariantAlsoNegotiates: 506,
|
|
62
|
+
InsufficientStorage: 507,
|
|
63
|
+
LoopDetected: 508,
|
|
64
|
+
NotExtended: 510,
|
|
65
|
+
NetworkAuthenticationRequired: 511
|
|
66
|
+
};
|
|
67
|
+
Object.entries(e).forEach(([t, o]) => {
|
|
68
|
+
e[o] = t;
|
|
69
|
+
});
|
|
3
70
|
export {
|
|
4
|
-
|
|
71
|
+
e as default
|
|
5
72
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instockng/storefront-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.55",
|
|
4
4
|
"description": "Pre-built UI components for OMS e-commerce sites",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -81,4 +81,4 @@
|
|
|
81
81
|
"typescript": "^5.3.3",
|
|
82
82
|
"vite": "^5.4.20"
|
|
83
83
|
}
|
|
84
|
-
}
|
|
84
|
+
}
|
|
@@ -117,7 +117,7 @@ export interface CheckoutProps {
|
|
|
117
117
|
/** Initial form data */
|
|
118
118
|
initialData?: Partial<CheckoutFormData>;
|
|
119
119
|
/** Callback on successful checkout */
|
|
120
|
-
onSuccess?: (
|
|
120
|
+
onSuccess?: (order: Order) => void;
|
|
121
121
|
/** Callback on error */
|
|
122
122
|
onError?: (error: Error) => void;
|
|
123
123
|
/** Submit button text */
|
|
@@ -196,7 +196,7 @@ export function Checkout({
|
|
|
196
196
|
// Clear the cart and create a new one for next purchase
|
|
197
197
|
clearAndCreateNewCart();
|
|
198
198
|
|
|
199
|
-
onSuccess?.(order
|
|
199
|
+
onSuccess?.(order as Order);
|
|
200
200
|
} catch (error) {
|
|
201
201
|
onError?.(error as Error);
|
|
202
202
|
}
|
|
@@ -407,6 +407,12 @@ export function Checkout({
|
|
|
407
407
|
|
|
408
408
|
const amountInKobo = Math.round(cart!.pricing.total * 100); // Convert to kobo
|
|
409
409
|
|
|
410
|
+
// Get Facebook attribution cookies for CAPI
|
|
411
|
+
const { fbc, fbp } = getFbCookies();
|
|
412
|
+
|
|
413
|
+
// Get TikTok attribution cookies for Events API
|
|
414
|
+
const { ttp, ttclid } = getTikTokCookies();
|
|
415
|
+
|
|
410
416
|
// Initiate Paystack payment popup
|
|
411
417
|
// The onSuccess callback in the hook will handle the checkout completion
|
|
412
418
|
paystack.initializePayment({
|
|
@@ -415,6 +421,18 @@ export function Checkout({
|
|
|
415
421
|
currency: 'NGN',
|
|
416
422
|
metadata: {
|
|
417
423
|
cartId: cart?.id,
|
|
424
|
+
brandSlug: cart?.brand?.slug,
|
|
425
|
+
address: formData.address,
|
|
426
|
+
city: formData.city,
|
|
427
|
+
delivery_zone_id: selectedDeliveryZoneId || formData.deliveryZoneId,
|
|
428
|
+
firstName: formData.firstName,
|
|
429
|
+
lastName: formData.lastName,
|
|
430
|
+
email: formData.email,
|
|
431
|
+
phone: formData.phone,
|
|
432
|
+
fbc,
|
|
433
|
+
fbp,
|
|
434
|
+
ttp,
|
|
435
|
+
ttclid,
|
|
418
436
|
custom_fields: [
|
|
419
437
|
{
|
|
420
438
|
display_name: 'Customer Name',
|
|
@@ -426,6 +444,21 @@ export function Checkout({
|
|
|
426
444
|
variable_name: 'phone_number',
|
|
427
445
|
value: formData.phone,
|
|
428
446
|
},
|
|
447
|
+
{
|
|
448
|
+
display_name: 'Address',
|
|
449
|
+
variable_name: 'address',
|
|
450
|
+
value: formData.address,
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
display_name: 'City',
|
|
454
|
+
variable_name: 'city',
|
|
455
|
+
value: formData.city,
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
display_name: 'Delivery Zone ID',
|
|
459
|
+
variable_name: 'delivery_zone_id',
|
|
460
|
+
value: selectedDeliveryZoneId || formData.deliveryZoneId,
|
|
461
|
+
}
|
|
429
462
|
],
|
|
430
463
|
},
|
|
431
464
|
});
|
|
@@ -469,7 +502,7 @@ export function Checkout({
|
|
|
469
502
|
// Clear the cart and create a new one for next purchase
|
|
470
503
|
clearAndCreateNewCart();
|
|
471
504
|
|
|
472
|
-
onSuccess?.(order
|
|
505
|
+
onSuccess?.(order as Order);
|
|
473
506
|
} catch (error) {
|
|
474
507
|
onError?.(error as Error);
|
|
475
508
|
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { useEffect, useState } from 'react';
|
|
11
|
+
import type { Order } from '@instockng/api-client';
|
|
11
12
|
import { useCart } from '../contexts/CartContext';
|
|
12
13
|
import { CartItem } from './CartItem';
|
|
13
14
|
import { DiscountCodeInput } from './DiscountCodeInput';
|
|
@@ -27,6 +28,8 @@ export interface ShoppingCartProps {
|
|
|
27
28
|
onCheckout?: () => void;
|
|
28
29
|
/** Callback when continue shopping is clicked */
|
|
29
30
|
onContinueShopping?: () => void;
|
|
31
|
+
/** Callback when purchase is successfully completed */
|
|
32
|
+
onPurchaseSuccess?: (order: Order) => void;
|
|
30
33
|
/** Custom class name */
|
|
31
34
|
className?: string;
|
|
32
35
|
/** Show discount code input */
|
|
@@ -52,6 +55,7 @@ export function ShoppingCart({
|
|
|
52
55
|
onClose,
|
|
53
56
|
onCheckout,
|
|
54
57
|
onContinueShopping,
|
|
58
|
+
onPurchaseSuccess,
|
|
55
59
|
className,
|
|
56
60
|
showDiscountCode = true,
|
|
57
61
|
showContinueShopping = true,
|
|
@@ -184,11 +188,11 @@ export function ShoppingCart({
|
|
|
184
188
|
</div>
|
|
185
189
|
|
|
186
190
|
{/* Discount Code - temporarily disabled */}
|
|
187
|
-
{
|
|
191
|
+
{showDiscountCode && (
|
|
188
192
|
<div className="px-4 pb-4">
|
|
189
193
|
<DiscountCodeInput />
|
|
190
194
|
</div>
|
|
191
|
-
)}
|
|
195
|
+
)}
|
|
192
196
|
</div>
|
|
193
197
|
|
|
194
198
|
{/* Recommended Products - Outside scroll area */}
|
|
@@ -255,7 +259,10 @@ export function ShoppingCart({
|
|
|
255
259
|
{/* Checkout Modal */}
|
|
256
260
|
<Checkout
|
|
257
261
|
isOpen={isCheckoutOpen}
|
|
258
|
-
onSuccess={() =>
|
|
262
|
+
onSuccess={(order) => {
|
|
263
|
+
onPurchaseSuccess?.(order);
|
|
264
|
+
onClose();
|
|
265
|
+
}}
|
|
259
266
|
onClose={() => setIsCheckoutOpen(false)}
|
|
260
267
|
refundPolicy={{
|
|
261
268
|
title: '🤔 Curious about Refunds?',
|