@enadhq/enad-react-sdk 0.0.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +70 -18
- package/dist/client/cart/components/cart-drawer.d.mts +0 -19
- package/dist/client/cart/components/cart-drawer.mjs +0 -180
- package/dist/client/cart/components/cart-drawer.mjs.map +0 -1
- package/dist/client/cart/components/cart-trigger.d.mts +0 -5
- package/dist/client/cart/components/cart-trigger.mjs +0 -18
- package/dist/client/cart/components/cart-trigger.mjs.map +0 -1
- package/dist/client/cart/constants/session.d.mts +0 -3
- package/dist/client/cart/constants/session.mjs +0 -5
- package/dist/client/cart/constants/session.mjs.map +0 -1
- package/dist/client/cart/contexts/cart.d.mts +0 -27
- package/dist/client/cart/contexts/cart.mjs +0 -22
- package/dist/client/cart/contexts/cart.mjs.map +0 -1
- package/dist/client/cart/hooks/useCart.d.mts +0 -29
- package/dist/client/cart/hooks/useCart.mjs +0 -26
- package/dist/client/cart/hooks/useCart.mjs.map +0 -1
- package/dist/client/cart/hooks/useCartActions.d.mts +0 -26
- package/dist/client/cart/hooks/useCartActions.mjs +0 -58
- package/dist/client/cart/hooks/useCartActions.mjs.map +0 -1
- package/dist/client/cart/queries/addToCartQueryFn.d.mts +0 -10
- package/dist/client/cart/queries/addToCartQueryFn.mjs +0 -27
- package/dist/client/cart/queries/addToCartQueryFn.mjs.map +0 -1
- package/dist/client/cart/queries/getCartQueryFn.d.mts +0 -7
- package/dist/client/cart/queries/getCartQueryFn.mjs +0 -34
- package/dist/client/cart/queries/getCartQueryFn.mjs.map +0 -1
- package/dist/client/cart/queries/removeCartItemQueryFn.d.mts +0 -9
- package/dist/client/cart/queries/removeCartItemQueryFn.mjs +0 -24
- package/dist/client/cart/queries/removeCartItemQueryFn.mjs.map +0 -1
- package/dist/client/cart/queries/updateCartItemQueryFn.d.mts +0 -10
- package/dist/client/cart/queries/updateCartItemQueryFn.mjs +0 -27
- package/dist/client/cart/queries/updateCartItemQueryFn.mjs.map +0 -1
- package/dist/client/cart/types/cart.d.mts +0 -36
- package/dist/client/cart/types/cart.mjs +0 -1
- package/dist/client/cart/types/cart.mjs.map +0 -1
- package/dist/client/cart/utils/session.d.mts +0 -6
- package/dist/client/cart/utils/session.mjs +0 -21
- package/dist/client/cart/utils/session.mjs.map +0 -1
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.d.mts +0 -6
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.mjs +0 -24
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.mjs.map +0 -1
- package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.d.mts +0 -22
- package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.mjs +0 -79
- package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.mjs.map +0 -1
- package/dist/client/global/auth/withAuth.d.mts +0 -6
- package/dist/client/global/auth/withAuth.mjs +0 -25
- package/dist/client/global/auth/withAuth.mjs.map +0 -1
- package/dist/client/global/config/index.d.mts +0 -17
- package/dist/client/global/config/index.mjs +0 -34
- package/dist/client/global/config/index.mjs.map +0 -1
- package/dist/client/global/constants/tags.d.mts +0 -16
- package/dist/client/global/constants/tags.mjs +0 -18
- package/dist/client/global/constants/tags.mjs.map +0 -1
- package/dist/client/global/providers/enad-provider.d.mts +0 -23
- package/dist/client/global/providers/enad-provider.mjs +0 -11
- package/dist/client/global/providers/enad-provider.mjs.map +0 -1
- package/dist/client/search/actions/searchAction.d.mts +0 -5
- package/dist/client/search/actions/searchAction.mjs +0 -18
- package/dist/client/search/actions/searchAction.mjs.map +0 -1
- package/dist/client/search/components/search-bar.d.mts +0 -2
- package/dist/client/search/components/search-bar.mjs +0 -1
- package/dist/client/search/components/search-bar.mjs.map +0 -1
- package/dist/client/search/hooks/useSearch.d.mts +0 -18
- package/dist/client/search/hooks/useSearch.mjs +0 -37
- package/dist/client/search/hooks/useSearch.mjs.map +0 -1
- package/dist/client/user/actions/createResetPasswordLinkAction.d.mts +0 -14
- package/dist/client/user/actions/createResetPasswordLinkAction.mjs +0 -30
- package/dist/client/user/actions/createResetPasswordLinkAction.mjs.map +0 -1
- package/dist/client/user/actions/getUserAction.d.mts +0 -5
- package/dist/client/user/actions/getUserAction.mjs +0 -19
- package/dist/client/user/actions/getUserAction.mjs.map +0 -1
- package/dist/client/user/actions/logInUserAction.d.mts +0 -15
- package/dist/client/user/actions/logInUserAction.mjs +0 -34
- package/dist/client/user/actions/logInUserAction.mjs.map +0 -1
- package/dist/client/user/actions/logoutUserAction.d.mts +0 -3
- package/dist/client/user/actions/logoutUserAction.mjs +0 -10
- package/dist/client/user/actions/logoutUserAction.mjs.map +0 -1
- package/dist/client/user/actions/registerOrganisationAction.d.mts +0 -12
- package/dist/client/user/actions/registerOrganisationAction.mjs +0 -18
- package/dist/client/user/actions/registerOrganisationAction.mjs.map +0 -1
- package/dist/client/user/actions/registerUserAction.d.mts +0 -18
- package/dist/client/user/actions/registerUserAction.mjs +0 -42
- package/dist/client/user/actions/registerUserAction.mjs.map +0 -1
- package/dist/client/user/actions/registerUserWithoutRedirectAction.d.mts +0 -44
- package/dist/client/user/actions/registerUserWithoutRedirectAction.mjs +0 -58
- package/dist/client/user/actions/registerUserWithoutRedirectAction.mjs.map +0 -1
- package/dist/client/user/actions/updatePasswordAction.d.mts +0 -21
- package/dist/client/user/actions/updatePasswordAction.mjs +0 -37
- package/dist/client/user/actions/updatePasswordAction.mjs.map +0 -1
- package/dist/client/user/api/userRoute.d.mts +0 -9
- package/dist/client/user/api/userRoute.mjs +0 -65
- package/dist/client/user/api/userRoute.mjs.map +0 -1
- package/dist/client/user/clients/enad.d.mts +0 -6
- package/dist/client/user/clients/enad.mjs +0 -19
- package/dist/client/user/clients/enad.mjs.map +0 -1
- package/dist/client/user/components/login-form.d.mts +0 -20
- package/dist/client/user/components/login-form.mjs +0 -113
- package/dist/client/user/components/login-form.mjs.map +0 -1
- package/dist/client/user/components/reset-password-form.d.mts +0 -15
- package/dist/client/user/components/reset-password-form.mjs +0 -86
- package/dist/client/user/components/reset-password-form.mjs.map +0 -1
- package/dist/client/user/components/sign-out.d.mts +0 -5
- package/dist/client/user/components/sign-out.mjs +0 -23
- package/dist/client/user/components/sign-out.mjs.map +0 -1
- package/dist/client/user/components/signup-form.d.mts +0 -15
- package/dist/client/user/components/signup-form.mjs +0 -155
- package/dist/client/user/components/signup-form.mjs.map +0 -1
- package/dist/client/user/components/signup-organisation-form.d.mts +0 -20
- package/dist/client/user/components/signup-organisation-form.mjs +0 -813
- package/dist/client/user/components/signup-organisation-form.mjs.map +0 -1
- package/dist/client/user/components/update-password-form.d.mts +0 -11
- package/dist/client/user/components/update-password-form.mjs +0 -69
- package/dist/client/user/components/update-password-form.mjs.map +0 -1
- package/dist/client/user/hooks/index.d.mts +0 -3
- package/dist/client/user/hooks/index.mjs +0 -2
- package/dist/client/user/hooks/index.mjs.map +0 -1
- package/dist/client/user/hooks/useUser.d.mts +0 -16
- package/dist/client/user/hooks/useUser.mjs +0 -32
- package/dist/client/user/hooks/useUser.mjs.map +0 -1
- package/dist/client/user/types/user.d.mts +0 -202
- package/dist/client/user/types/user.mjs +0 -1
- package/dist/client/user/types/user.mjs.map +0 -1
- package/dist/client/user/utils/userCookieService.d.mts +0 -20
- package/dist/client/user/utils/userCookieService.mjs +0 -51
- package/dist/client/user/utils/userCookieService.mjs.map +0 -1
- package/dist/client/wishlist/actions/addItemsToWishlistAction.d.mts +0 -7
- package/dist/client/wishlist/actions/addItemsToWishlistAction.mjs +0 -20
- package/dist/client/wishlist/actions/addItemsToWishlistAction.mjs.map +0 -1
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.d.mts +0 -6
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.mjs +0 -20
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.mjs.map +0 -1
- package/dist/client/wishlist/actions/createWishlistAction.d.mts +0 -6
- package/dist/client/wishlist/actions/createWishlistAction.mjs +0 -16
- package/dist/client/wishlist/actions/createWishlistAction.mjs.map +0 -1
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.d.mts +0 -7
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.mjs +0 -20
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.mjs.map +0 -1
- package/dist/client/wishlist/actions/deleteWishlistAction.d.mts +0 -5
- package/dist/client/wishlist/actions/deleteWishlistAction.mjs +0 -16
- package/dist/client/wishlist/actions/deleteWishlistAction.mjs.map +0 -1
- package/dist/client/wishlist/actions/getSharedWishlistAction.d.mts +0 -6
- package/dist/client/wishlist/actions/getSharedWishlistAction.mjs +0 -20
- package/dist/client/wishlist/actions/getSharedWishlistAction.mjs.map +0 -1
- package/dist/client/wishlist/actions/getSpecificWishlistAction.d.mts +0 -6
- package/dist/client/wishlist/actions/getSpecificWishlistAction.mjs +0 -20
- package/dist/client/wishlist/actions/getSpecificWishlistAction.mjs.map +0 -1
- package/dist/client/wishlist/actions/getUserWishlists.d.mts +0 -7
- package/dist/client/wishlist/actions/getUserWishlists.mjs +0 -25
- package/dist/client/wishlist/actions/getUserWishlists.mjs.map +0 -1
- package/dist/client/wishlist/actions/revokeShareTokenAction.d.mts +0 -5
- package/dist/client/wishlist/actions/revokeShareTokenAction.mjs +0 -20
- package/dist/client/wishlist/actions/revokeShareTokenAction.mjs.map +0 -1
- package/dist/client/wishlist/actions/updateWishlistAction.d.mts +0 -6
- package/dist/client/wishlist/actions/updateWishlistAction.mjs +0 -20
- package/dist/client/wishlist/actions/updateWishlistAction.mjs.map +0 -1
- package/dist/client/wishlist/hooks/index.d.mts +0 -3
- package/dist/client/wishlist/hooks/index.mjs +0 -2
- package/dist/client/wishlist/hooks/index.mjs.map +0 -1
- package/dist/client/wishlist/hooks/useWishlist.d.mts +0 -98
- package/dist/client/wishlist/hooks/useWishlist.mjs +0 -66
- package/dist/client/wishlist/hooks/useWishlist.mjs.map +0 -1
- package/dist/client/wishlist/hooks/useWishlistActions.d.mts +0 -48
- package/dist/client/wishlist/hooks/useWishlistActions.mjs +0 -101
- package/dist/client/wishlist/hooks/useWishlistActions.mjs.map +0 -1
- package/dist/client/wishlist/wishlist-drawer.d.mts +0 -19
- package/dist/client/wishlist/wishlist-drawer.mjs +0 -180
- package/dist/client/wishlist/wishlist-drawer.mjs.map +0 -1
- package/dist/styles.css +0 -959
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enadhq/enad-react-sdk",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"**/*.css"
|
|
6
6
|
],
|
|
@@ -12,21 +12,56 @@
|
|
|
12
12
|
"types": "./dist/index.d.mts",
|
|
13
13
|
"exports": {
|
|
14
14
|
"./styles.css": "./dist/styles.css",
|
|
15
|
+
"./client/global": {
|
|
16
|
+
"types": "./dist/client/global/index.d.ts",
|
|
17
|
+
"import": "./dist/client/global/index.mjs",
|
|
18
|
+
"default": "./dist/client/global/index.mjs"
|
|
19
|
+
},
|
|
20
|
+
"./client/cart": {
|
|
21
|
+
"types": "./dist/client/cart/index.d.ts",
|
|
22
|
+
"import": "./dist/client/cart/index.mjs",
|
|
23
|
+
"default": "./dist/client/cart/index.mjs"
|
|
24
|
+
},
|
|
25
|
+
"./client/icons": {
|
|
26
|
+
"types": "./dist/client/icons/index.d.ts",
|
|
27
|
+
"import": "./dist/client/icons/index.mjs",
|
|
28
|
+
"default": "./dist/client/icons/index.mjs"
|
|
29
|
+
},
|
|
30
|
+
"./client/search": {
|
|
31
|
+
"types": "./dist/client/search/index.d.ts",
|
|
32
|
+
"import": "./dist/client/search/index.mjs",
|
|
33
|
+
"default": "./dist/client/search/index.mjs"
|
|
34
|
+
},
|
|
35
|
+
"./client/storefront": {
|
|
36
|
+
"types": "./dist/client/storefront/index.d.ts",
|
|
37
|
+
"import": "./dist/client/storefront/index.mjs",
|
|
38
|
+
"default": "./dist/client/storefront/index.mjs"
|
|
39
|
+
},
|
|
40
|
+
"./client/user": {
|
|
41
|
+
"types": "./dist/client/user/index.d.ts",
|
|
42
|
+
"import": "./dist/client/user/index.mjs",
|
|
43
|
+
"default": "./dist/client/user/index.mjs"
|
|
44
|
+
},
|
|
45
|
+
"./client/wishlist": {
|
|
46
|
+
"types": "./dist/client/wishlist/index.d.ts",
|
|
47
|
+
"import": "./dist/client/wishlist/index.mjs",
|
|
48
|
+
"default": "./dist/client/wishlist/index.mjs"
|
|
49
|
+
},
|
|
50
|
+
"./client/theme": {
|
|
51
|
+
"types": "./dist/client/theme/index.d.ts",
|
|
52
|
+
"import": "./dist/client/theme/index.mjs",
|
|
53
|
+
"default": "./dist/client/theme/index.mjs"
|
|
54
|
+
},
|
|
15
55
|
"./client/*": {
|
|
16
56
|
"types": "./dist/client/*.d.ts",
|
|
17
57
|
"import": "./dist/client/*.mjs",
|
|
18
58
|
"default": "./dist/client/*.mjs"
|
|
19
59
|
}
|
|
20
60
|
},
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
"build:pack": "tsup",
|
|
24
|
-
"dev:pack": "tsup --watch",
|
|
25
|
-
"check-types": "tsc --noEmit",
|
|
26
|
-
"lint": "eslint src --max-warnings 0",
|
|
27
|
-
"build:styles": "tailwindcss -i ./src/styles.css -o ./dist/styles.css --minify",
|
|
28
|
-
"dev:styles": "tailwindcss -i ./src/styles.css -o ./dist/styles.css --watch"
|
|
61
|
+
"bin": {
|
|
62
|
+
"enad-theme": "./dist/client/theme/cli.mjs"
|
|
29
63
|
},
|
|
64
|
+
"license": "MIT",
|
|
30
65
|
"peerDependencies": {
|
|
31
66
|
"@tanstack/react-query": "^5.0.0",
|
|
32
67
|
"next": "^16.0.0",
|
|
@@ -34,31 +69,48 @@
|
|
|
34
69
|
"react-dom": "^19"
|
|
35
70
|
},
|
|
36
71
|
"devDependencies": {
|
|
37
|
-
"@
|
|
38
|
-
"@repo/tailwind-config": "workspace:*",
|
|
39
|
-
"@repo/typescript-config": "workspace:*",
|
|
72
|
+
"@storybook/addon-docs": "^10.0.2",
|
|
40
73
|
"@storybook/addon-essentials": "^8.6.14",
|
|
41
74
|
"@storybook/react": "^10.0.2",
|
|
42
|
-
"@storybook/addon-docs": "^10.0.2",
|
|
43
75
|
"@tailwindcss/cli": "^4.1.5",
|
|
44
76
|
"@types/node": "^24.10.0",
|
|
45
77
|
"@types/react": "^19.1.0",
|
|
46
78
|
"eslint": "^9.38.0",
|
|
79
|
+
"msw": "^2.11.6",
|
|
80
|
+
"msw-storybook-addon": "^2.0.6",
|
|
47
81
|
"next": "^16.0.0",
|
|
48
82
|
"react-dom": "^19",
|
|
49
83
|
"tailwindcss": "^4.1.5",
|
|
50
84
|
"tsup": "^8.5.0",
|
|
51
85
|
"typescript": "5.9.2",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
86
|
+
"@repo/eslint-config": "0.0.0",
|
|
87
|
+
"@repo/tailwind-config": "0.0.0",
|
|
88
|
+
"@repo/typescript-config": "0.0.0"
|
|
54
89
|
},
|
|
55
90
|
"dependencies": {
|
|
56
|
-
"@enadhq/enad-ts-sdk": "workspace:*",
|
|
57
91
|
"@hookform/resolvers": "^3.9.1",
|
|
92
|
+
"@hugeicons/core-free-icons": "^4.0.0",
|
|
93
|
+
"@hugeicons/react": "^1.1.6",
|
|
94
|
+
"@msgpack/msgpack": "^3.1.3",
|
|
95
|
+
"@phosphor-icons/react": "^2.1.10",
|
|
58
96
|
"@storyblok/react": "^4.0.0",
|
|
59
97
|
"@tanstack/react-query": "^5.90.5",
|
|
98
|
+
"class-variance-authority": "^0.7.1",
|
|
99
|
+
"clsx": "^2.1.1",
|
|
100
|
+
"embla-carousel-react": "^8.6.0",
|
|
60
101
|
"lucide-react": "^0.552.0",
|
|
102
|
+
"radix-ui": "^1.4.3",
|
|
61
103
|
"react-hook-form": "^7.53.0",
|
|
62
|
-
"
|
|
104
|
+
"tailwind-merge": "^3.5.0",
|
|
105
|
+
"zod": "^4.1.12",
|
|
106
|
+
"@enadhq/enad-ts-sdk": "0.16.3"
|
|
107
|
+
},
|
|
108
|
+
"scripts": {
|
|
109
|
+
"build:pack": "tsup && tsc --project tsconfig.build.json",
|
|
110
|
+
"dev:pack": "tsup --watch",
|
|
111
|
+
"check-types": "tsc --noEmit",
|
|
112
|
+
"lint": "eslint src --max-warnings 0",
|
|
113
|
+
"build:styles": "tailwindcss -i ./src/styles.css -o ./dist/styles.css --minify",
|
|
114
|
+
"dev:styles": "tailwindcss -i ./src/styles.css -o ./dist/styles.css --watch"
|
|
63
115
|
}
|
|
64
|
-
}
|
|
116
|
+
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
|
|
3
|
-
interface CartDrawerProps {
|
|
4
|
-
isOpen: boolean;
|
|
5
|
-
onClose: () => void;
|
|
6
|
-
labels?: {
|
|
7
|
-
title?: string;
|
|
8
|
-
emptyCartMessage?: string;
|
|
9
|
-
continueShopping?: string;
|
|
10
|
-
subtotal?: string;
|
|
11
|
-
discount?: string;
|
|
12
|
-
tax?: string;
|
|
13
|
-
total?: string;
|
|
14
|
-
proceedToCheckout?: string;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
declare function CartDrawer({ isOpen, onClose, labels }: CartDrawerProps): react_jsx_runtime.JSX.Element;
|
|
18
|
-
|
|
19
|
-
export { CartDrawer };
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { X, Minus, Plus, Trash2 } from "lucide-react";
|
|
4
|
-
import Link from "next/link";
|
|
5
|
-
import { useCart } from "../../cart/hooks/useCart";
|
|
6
|
-
const Button = ({
|
|
7
|
-
variant = "default",
|
|
8
|
-
size = "default",
|
|
9
|
-
className = "",
|
|
10
|
-
children,
|
|
11
|
-
...props
|
|
12
|
-
}) => {
|
|
13
|
-
const baseClasses = "inline-flex items-center justify-center font-medium transition-colors disabled:opacity-50 disabled:pointer-events-none";
|
|
14
|
-
const variantClasses = {
|
|
15
|
-
default: "bg-(--enad-button-bg) text-(--enad-button-color) hover:bg-(--enad-button-hover-bg)",
|
|
16
|
-
ghost: "bg-transparent hover:bg-(--enad-border-color)",
|
|
17
|
-
outline: "border border-(--enad-border-color) bg-transparent hover:bg-(--enad-border-color)"
|
|
18
|
-
};
|
|
19
|
-
const sizeClasses = {
|
|
20
|
-
default: "h-10 px-4 py-2 rounded-(--enad-border-radius)",
|
|
21
|
-
lg: "h-12 px-6 py-3 rounded-(--enad-border-radius)",
|
|
22
|
-
icon: "h-5 w-5 rounded-(--enad-border-radius)"
|
|
23
|
-
};
|
|
24
|
-
return /* @__PURE__ */ jsx(
|
|
25
|
-
"button",
|
|
26
|
-
{
|
|
27
|
-
className: `${baseClasses} ${variantClasses[variant]} ${sizeClasses[size]} ${className}`,
|
|
28
|
-
...props,
|
|
29
|
-
children
|
|
30
|
-
}
|
|
31
|
-
);
|
|
32
|
-
};
|
|
33
|
-
function CartDrawer({ isOpen, onClose, labels = {} }) {
|
|
34
|
-
const {
|
|
35
|
-
title = "Shopping Cart",
|
|
36
|
-
emptyCartMessage = "Your cart is empty",
|
|
37
|
-
continueShopping = "Continue Shopping",
|
|
38
|
-
subtotal = "Subtotal",
|
|
39
|
-
discount = "Discount",
|
|
40
|
-
tax = "Tax",
|
|
41
|
-
total = "Total",
|
|
42
|
-
proceedToCheckout = "Proceed to Checkout"
|
|
43
|
-
} = labels;
|
|
44
|
-
const { cart, removeItem, updateItem } = useCart();
|
|
45
|
-
const items = cart?.items || [];
|
|
46
|
-
const totals = cart?.totals;
|
|
47
|
-
const handleUpdateQuantity = (itemId, newQuantity) => {
|
|
48
|
-
updateItem({ itemId, quantity: newQuantity });
|
|
49
|
-
};
|
|
50
|
-
const handleRemoveItem = (itemId) => {
|
|
51
|
-
removeItem({ itemId });
|
|
52
|
-
};
|
|
53
|
-
const formatPrice = (amount) => {
|
|
54
|
-
return `${(amount / 100).toFixed(2)} ${cart?.currencyCode || "USD"}`;
|
|
55
|
-
};
|
|
56
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
57
|
-
/* @__PURE__ */ jsx(
|
|
58
|
-
"div",
|
|
59
|
-
{
|
|
60
|
-
className: `fixed font-enad inset-0 bg-black/60 backdrop-blur-sm z-50 transition-opacity duration-300 ${isOpen ? "opacity-100" : "opacity-0 pointer-events-none"}`,
|
|
61
|
-
onClick: onClose
|
|
62
|
-
}
|
|
63
|
-
),
|
|
64
|
-
/* @__PURE__ */ jsx(
|
|
65
|
-
"div",
|
|
66
|
-
{
|
|
67
|
-
className: `fixed top-0 right-0 h-full w-full md:w-[480px] bg-(--enad-surface) z-50 transform transition-transform duration-300 ease-in-out ${isOpen ? "translate-x-0" : "translate-x-full"}`,
|
|
68
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full", children: [
|
|
69
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between p-6", children: [
|
|
70
|
-
/* @__PURE__ */ jsx(
|
|
71
|
-
"h2",
|
|
72
|
-
{
|
|
73
|
-
className: "text-xl font-bold tracking-wider uppercase text-(--enad-text-primary-color)",
|
|
74
|
-
style: { fontFamily: "var(--font-oswald)" },
|
|
75
|
-
children: title
|
|
76
|
-
}
|
|
77
|
-
),
|
|
78
|
-
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon", onClick: onClose, children: /* @__PURE__ */ jsx(X, { className: "h-5 w-5" }) })
|
|
79
|
-
] }),
|
|
80
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto p-6", children: items.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center h-full text-center", children: [
|
|
81
|
-
/* @__PURE__ */ jsx("p", { className: "text-(--enad-text-muted-color) mb-4", children: emptyCartMessage }),
|
|
82
|
-
/* @__PURE__ */ jsx(Button, { onClick: onClose, variant: "outline", children: continueShopping })
|
|
83
|
-
] }) : /* @__PURE__ */ jsx("div", { className: "space-y-6", children: items.map((item) => /* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
|
|
84
|
-
/* @__PURE__ */ jsx("div", { className: "relative w-24 h-24 flex-shrink-0 bg-(--enad-border-color) rounded-(--enad-border-radius) overflow-hidden", children: item.imageUrl ? /* @__PURE__ */ jsx(
|
|
85
|
-
"img",
|
|
86
|
-
{
|
|
87
|
-
src: item.imageUrl || "/placeholder.svg",
|
|
88
|
-
alt: item.displayName,
|
|
89
|
-
className: "object-cover"
|
|
90
|
-
}
|
|
91
|
-
) : /* @__PURE__ */ jsx("div", { className: "w-full h-full bg-(--enad-border-color)" }) }),
|
|
92
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-1 min-w-0 justify-between flex-col", children: [
|
|
93
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-between gap-2 mb-2", children: [
|
|
94
|
-
/* @__PURE__ */ jsx(
|
|
95
|
-
Link,
|
|
96
|
-
{
|
|
97
|
-
href: `/products/${item.customAttributes?.productSlug || item.productVariantId}`,
|
|
98
|
-
className: "font-medium text-sm text-(--enad-link-color) hover:text-(--enad-link-hover-color) transition-colors",
|
|
99
|
-
onClick: onClose,
|
|
100
|
-
children: item.displayName
|
|
101
|
-
}
|
|
102
|
-
),
|
|
103
|
-
/* @__PURE__ */ jsx(
|
|
104
|
-
Button,
|
|
105
|
-
{
|
|
106
|
-
variant: "ghost",
|
|
107
|
-
size: "icon",
|
|
108
|
-
className: "h-5 w-5 flex-shrink-0",
|
|
109
|
-
onClick: () => handleRemoveItem(item.id),
|
|
110
|
-
children: /* @__PURE__ */ jsx(Trash2, { className: "h-4 w-4" })
|
|
111
|
-
}
|
|
112
|
-
)
|
|
113
|
-
] }),
|
|
114
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
115
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-(--enad-text-muted-color) mb-1", children: formatPrice(item.salePriceAmount) }),
|
|
116
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
117
|
-
/* @__PURE__ */ jsx(
|
|
118
|
-
Button,
|
|
119
|
-
{
|
|
120
|
-
variant: "outline",
|
|
121
|
-
size: "icon",
|
|
122
|
-
className: "h-5 w-5 bg-transparent",
|
|
123
|
-
onClick: () => handleUpdateQuantity(item.id, item.quantity - 1),
|
|
124
|
-
disabled: item.quantity <= 1,
|
|
125
|
-
children: /* @__PURE__ */ jsx(Minus, { className: "h-3 w-3" })
|
|
126
|
-
}
|
|
127
|
-
),
|
|
128
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium w-8 text-center text-(--enad-text-primary-color)", children: item.quantity }),
|
|
129
|
-
/* @__PURE__ */ jsx(
|
|
130
|
-
Button,
|
|
131
|
-
{
|
|
132
|
-
variant: "outline",
|
|
133
|
-
size: "icon",
|
|
134
|
-
className: "h-5 w-5 bg-transparent",
|
|
135
|
-
onClick: () => handleUpdateQuantity(item.id, item.quantity + 1),
|
|
136
|
-
children: /* @__PURE__ */ jsx(Plus, { className: "h-3 w-3" })
|
|
137
|
-
}
|
|
138
|
-
)
|
|
139
|
-
] })
|
|
140
|
-
] })
|
|
141
|
-
] })
|
|
142
|
-
] }, item.id)) }) }),
|
|
143
|
-
items.length > 0 && totals && /* @__PURE__ */ jsxs("div", { className: " p-6 space-y-4", children: [
|
|
144
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
145
|
-
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-muted-color)", children: subtotal }),
|
|
146
|
-
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-primary-color)", children: formatPrice(totals.subTotal) })
|
|
147
|
-
] }),
|
|
148
|
-
totals.discountTotal > 0 && /* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
149
|
-
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-muted-color)", children: discount }),
|
|
150
|
-
/* @__PURE__ */ jsxs("span", { className: "text-(--enad-success-color)", children: [
|
|
151
|
-
"-",
|
|
152
|
-
formatPrice(totals.discountTotal)
|
|
153
|
-
] })
|
|
154
|
-
] }),
|
|
155
|
-
totals.taxTotal > 0 && /* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
156
|
-
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-muted-color)", children: tax }),
|
|
157
|
-
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-primary-color)", children: formatPrice(totals.taxTotal) })
|
|
158
|
-
] }),
|
|
159
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-lg font-bold pt-4 border-t border-(--enad-border-color)", children: [
|
|
160
|
-
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-primary-color)", children: total }),
|
|
161
|
-
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-primary-color)", children: formatPrice(totals.grandTotal) })
|
|
162
|
-
] }),
|
|
163
|
-
/* @__PURE__ */ jsx(
|
|
164
|
-
Button,
|
|
165
|
-
{
|
|
166
|
-
className: "w-full py-6 text-sm font-medium uppercase tracking-wider",
|
|
167
|
-
size: "lg",
|
|
168
|
-
children: proceedToCheckout
|
|
169
|
-
}
|
|
170
|
-
)
|
|
171
|
-
] })
|
|
172
|
-
] })
|
|
173
|
-
}
|
|
174
|
-
)
|
|
175
|
-
] });
|
|
176
|
-
}
|
|
177
|
-
export {
|
|
178
|
-
CartDrawer
|
|
179
|
-
};
|
|
180
|
-
//# sourceMappingURL=cart-drawer.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/cart/components/cart-drawer.tsx"],"sourcesContent":["\"use client\"\n\nimport { X, Minus, Plus, Trash2 } from \"lucide-react\"\nimport Link from \"next/link\"\nimport { useCart } from \"../../cart/hooks/useCart\"\n\ninterface CartDrawerProps {\n isOpen: boolean\n onClose: () => void\n labels?: {\n title?: string\n emptyCartMessage?: string\n continueShopping?: string\n subtotal?: string\n discount?: string\n tax?: string\n total?: string\n proceedToCheckout?: string\n }\n}\n\n// Inline Button Component\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: \"ghost\" | \"outline\" | \"default\"\n size?: \"icon\" | \"lg\" | \"default\"\n children: React.ReactNode\n}\n\nconst Button = ({\n variant = \"default\",\n size = \"default\",\n className = \"\",\n children,\n ...props\n}: ButtonProps) => {\n const baseClasses =\n \"inline-flex items-center justify-center font-medium transition-colors disabled:opacity-50 disabled:pointer-events-none\"\n\n const variantClasses = {\n default: \"bg-(--enad-button-bg) text-(--enad-button-color) hover:bg-(--enad-button-hover-bg)\",\n ghost: \"bg-transparent hover:bg-(--enad-border-color)\",\n outline: \"border border-(--enad-border-color) bg-transparent hover:bg-(--enad-border-color)\",\n }\n\n const sizeClasses = {\n default: \"h-10 px-4 py-2 rounded-(--enad-border-radius)\",\n lg: \"h-12 px-6 py-3 rounded-(--enad-border-radius)\",\n icon: \"h-5 w-5 rounded-(--enad-border-radius)\",\n }\n\n return (\n <button\n className={`${baseClasses} ${variantClasses[variant]} ${sizeClasses[size]} ${className}`}\n {...props}\n >\n {children}\n </button>\n )\n}\n\nexport function CartDrawer({ isOpen, onClose, labels = {} }: CartDrawerProps) {\n const {\n title = \"Shopping Cart\",\n emptyCartMessage = \"Your cart is empty\",\n continueShopping = \"Continue Shopping\",\n subtotal = \"Subtotal\",\n discount = \"Discount\",\n tax = \"Tax\",\n total = \"Total\",\n proceedToCheckout = \"Proceed to Checkout\",\n } = labels\n const { cart, removeItem, updateItem } = useCart()\n\n const items = cart?.items || []\n const totals = cart?.totals\n\n const handleUpdateQuantity = (itemId: string, newQuantity: number) => {\n updateItem({ itemId, quantity: newQuantity })\n }\n\n const handleRemoveItem = (itemId: string) => {\n removeItem({ itemId })\n }\n\n const formatPrice = (amount: number) => {\n return `${(amount / 100).toFixed(2)} ${cart?.currencyCode || \"USD\"}`\n }\n\n return (\n <>\n {/* Backdrop */}\n <div\n className={`fixed font-enad inset-0 bg-black/60 backdrop-blur-sm z-50 transition-opacity duration-300 ${\n isOpen ? \"opacity-100\" : \"opacity-0 pointer-events-none\"\n }`}\n onClick={onClose}\n />\n\n {/* Drawer */}\n <div\n className={`fixed top-0 right-0 h-full w-full md:w-[480px] bg-(--enad-surface) z-50 transform transition-transform duration-300 ease-in-out ${\n isOpen ? \"translate-x-0\" : \"translate-x-full\"\n }`}\n >\n <div className=\"flex flex-col h-full\">\n {/* Header */}\n <div className=\"flex items-center justify-between p-6\">\n <h2\n className=\"text-xl font-bold tracking-wider uppercase text-(--enad-text-primary-color)\"\n style={{ fontFamily: \"var(--font-oswald)\" }}\n >\n {title}\n </h2>\n <Button variant=\"ghost\" size=\"icon\" onClick={onClose}>\n <X className=\"h-5 w-5\" />\n </Button>\n </div>\n\n {/* Cart Items */}\n <div className=\"flex-1 overflow-y-auto p-6\">\n {items.length === 0 ? (\n <div className=\"flex flex-col items-center justify-center h-full text-center\">\n <p className=\"text-(--enad-text-muted-color) mb-4\">{emptyCartMessage}</p>\n <Button onClick={onClose} variant=\"outline\">\n {continueShopping}\n </Button>\n </div>\n ) : (\n <div className=\"space-y-6\">\n {items.map((item) => (\n <div key={item.id} className=\"flex gap-4\">\n {/* Product Image */}\n <div className=\"relative w-24 h-24 flex-shrink-0 bg-(--enad-border-color) rounded-(--enad-border-radius) overflow-hidden\">\n {item.imageUrl ? (\n <img\n src={item.imageUrl || \"/placeholder.svg\"}\n alt={item.displayName}\n className=\"object-cover\"\n />\n ) : (\n <div className=\"w-full h-full bg-(--enad-border-color)\" />\n )}\n </div>\n\n {/* Product Info */}\n <div className=\"flex flex-1 min-w-0 justify-between flex-col\">\n <div className=\"flex justify-between gap-2 mb-2\">\n <Link\n href={`/products/${item.customAttributes?.productSlug || item.productVariantId}`}\n className=\"font-medium text-sm text-(--enad-link-color) hover:text-(--enad-link-hover-color) transition-colors\"\n onClick={onClose}\n >\n {item.displayName}\n </Link>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-5 w-5 flex-shrink-0\"\n onClick={() => handleRemoveItem(item.id)}\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </div>\n\n <div>\n <p className=\"text-sm text-(--enad-text-muted-color) mb-1\">\n {formatPrice(item.salePriceAmount)}\n </p>\n\n {/* Quantity Controls */}\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-5 w-5 bg-transparent\"\n onClick={() => handleUpdateQuantity(item.id, item.quantity - 1)}\n disabled={item.quantity <= 1}\n >\n <Minus className=\"h-3 w-3\" />\n </Button>\n <span className=\"text-sm font-medium w-8 text-center text-(--enad-text-primary-color)\">\n {item.quantity}\n </span>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-5 w-5 bg-transparent\"\n onClick={() => handleUpdateQuantity(item.id, item.quantity + 1)}\n >\n <Plus className=\"h-3 w-3\" />\n </Button>\n </div>\n </div>\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Footer with Totals */}\n {items.length > 0 && totals && (\n <div className=\" p-6 space-y-4\">\n {/* Subtotal */}\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-(--enad-text-muted-color)\">{subtotal}</span>\n <span className=\"text-(--enad-text-primary-color)\">\n {formatPrice(totals.subTotal)}\n </span>\n </div>\n\n {/* Discount */}\n {totals.discountTotal > 0 && (\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-(--enad-text-muted-color)\">{discount}</span>\n <span className=\"text-(--enad-success-color)\">\n -{formatPrice(totals.discountTotal)}\n </span>\n </div>\n )}\n\n {/* Tax */}\n {totals.taxTotal > 0 && (\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-(--enad-text-muted-color)\">{tax}</span>\n <span className=\"text-(--enad-text-primary-color)\">\n {formatPrice(totals.taxTotal)}\n </span>\n </div>\n )}\n\n {/* Total */}\n <div className=\"flex justify-between text-lg font-bold pt-4 border-t border-(--enad-border-color)\">\n <span className=\"text-(--enad-text-primary-color)\">{total}</span>\n <span className=\"text-(--enad-text-primary-color)\">\n {formatPrice(totals.grandTotal)}\n </span>\n </div>\n\n {/* Checkout Button */}\n <Button\n className=\"w-full py-6 text-sm font-medium uppercase tracking-wider\"\n size=\"lg\"\n >\n {proceedToCheckout}\n </Button>\n </div>\n )}\n </div>\n </div>\n </>\n )\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useState } from "react";
|
|
4
|
-
const CartTrigger = () => {
|
|
5
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
6
|
-
return /* @__PURE__ */ jsx(
|
|
7
|
-
"button",
|
|
8
|
-
{
|
|
9
|
-
className: "mb-4 px-4 py-2 bg-(--enad-button-bg) hover:bg-(--enad-button-hover-bg) text-(--enad-button-color) rounded-(--enad-border-radius)",
|
|
10
|
-
onClick: () => setIsOpen((prev) => !prev),
|
|
11
|
-
children: "Toggle Cart"
|
|
12
|
-
}
|
|
13
|
-
);
|
|
14
|
-
};
|
|
15
|
-
export {
|
|
16
|
-
CartTrigger
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=cart-trigger.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/cart/components/cart-trigger.tsx"],"sourcesContent":["\"use client\"\nimport { useState } from \"react\"\n\nexport const CartTrigger = () => {\n const [isOpen, setIsOpen] = useState(false)\n\n return (\n <button\n className=\"mb-4 px-4 py-2 bg-(--enad-button-bg) hover:bg-(--enad-button-hover-bg) text-(--enad-button-color) rounded-(--enad-border-radius)\"\n onClick={() => setIsOpen((prev) => !prev)}\n >\n Toggle Cart\n </button>\n )\n}\n"],"mappings":";AAOI;AANJ,SAAS,gBAAgB;AAElB,MAAM,cAAc,MAAM;AAC/B,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAE1C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,SAAS,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI;AAAA,MACzC;AAAA;AAAA,EAED;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/cart/constants/session.ts"],"sourcesContent":["export const CART_SESSION_KEY = \"brink_cart_session\"\n"],"mappings":"AAAO,MAAM,mBAAmB;","names":[]}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React__default from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* BrinkConfig defines the configuration needed for the cart context.
|
|
5
|
-
*/
|
|
6
|
-
interface BrinkConfig {
|
|
7
|
-
/**
|
|
8
|
-
* Brink environment identifier.
|
|
9
|
-
*/
|
|
10
|
-
env: string;
|
|
11
|
-
/**
|
|
12
|
-
* Store group identifier.
|
|
13
|
-
*/
|
|
14
|
-
storeGroupId: string;
|
|
15
|
-
/**
|
|
16
|
-
* Country code (e.g., "US").
|
|
17
|
-
*/
|
|
18
|
-
countryCode: string;
|
|
19
|
-
/**
|
|
20
|
-
* Language code (e.g., "en").
|
|
21
|
-
*/
|
|
22
|
-
languageCode: string;
|
|
23
|
-
}
|
|
24
|
-
declare const CartProvider: React__default.FC<React__default.PropsWithChildren<BrinkConfig>>;
|
|
25
|
-
declare const useBrinkConfig: () => BrinkConfig;
|
|
26
|
-
|
|
27
|
-
export { type BrinkConfig, CartProvider, useBrinkConfig };
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useContext } from "react";
|
|
3
|
-
const CartContext = createContext(void 0);
|
|
4
|
-
const CartProvider = ({
|
|
5
|
-
children,
|
|
6
|
-
env,
|
|
7
|
-
storeGroupId,
|
|
8
|
-
countryCode,
|
|
9
|
-
languageCode
|
|
10
|
-
}) => {
|
|
11
|
-
return /* @__PURE__ */ jsx(CartContext.Provider, { value: { env, storeGroupId, countryCode, languageCode }, children });
|
|
12
|
-
};
|
|
13
|
-
const useBrinkConfig = () => {
|
|
14
|
-
const context = useContext(CartContext);
|
|
15
|
-
if (!context) throw new Error("useBrinkConfig must be used inside a CartProvider");
|
|
16
|
-
return context;
|
|
17
|
-
};
|
|
18
|
-
export {
|
|
19
|
-
CartProvider,
|
|
20
|
-
useBrinkConfig
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=cart.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/cart/contexts/cart.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\"\n\n/**\n * BrinkConfig defines the configuration needed for the cart context.\n */\nexport interface BrinkConfig {\n /**\n * Brink environment identifier.\n */\n env: string\n /**\n * Store group identifier.\n */\n storeGroupId: string\n /**\n * Country code (e.g., \"US\").\n */\n countryCode: string\n /**\n * Language code (e.g., \"en\").\n */\n languageCode: string\n}\n\nconst CartContext = createContext<BrinkConfig | undefined>(undefined)\n\nexport const CartProvider: React.FC<React.PropsWithChildren<BrinkConfig>> = ({\n children,\n env,\n storeGroupId,\n countryCode,\n languageCode,\n}) => {\n return (\n <CartContext.Provider value={{ env, storeGroupId, countryCode, languageCode }}>\n {children}\n </CartContext.Provider>\n )\n}\n\nexport const useBrinkConfig = (): BrinkConfig => {\n const context = useContext(CartContext)\n if (!context) throw new Error(\"useBrinkConfig must be used inside a CartProvider\")\n return context\n}\n"],"mappings":"AAkCI;AAlCJ,SAAgB,eAAe,kBAAkB;AAwBjD,MAAM,cAAc,cAAuC,MAAS;AAE7D,MAAM,eAA+D,CAAC;AAAA,EAC3E;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,SACE,oBAAC,YAAY,UAAZ,EAAqB,OAAO,EAAE,KAAK,cAAc,aAAa,aAAa,GACzE,UACH;AAEJ;AAEO,MAAM,iBAAiB,MAAmB;AAC/C,QAAM,UAAU,WAAW,WAAW;AACtC,MAAI,CAAC,QAAS,OAAM,IAAI,MAAM,mDAAmD;AACjF,SAAO;AACT;","names":[]}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
2
|
-
import { CartResponse, Cart } from '../types/cart.mjs';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Hook to manage cart state and actions.
|
|
6
|
-
* Provides the current cart, loading states, and functions to modify the cart.
|
|
7
|
-
*/
|
|
8
|
-
declare const useCart: () => {
|
|
9
|
-
addItem: _tanstack_react_query.UseMutateAsyncFunction<CartResponse, Error, {
|
|
10
|
-
productVariantId: string;
|
|
11
|
-
quantity?: number;
|
|
12
|
-
}, unknown>;
|
|
13
|
-
updateItem: _tanstack_react_query.UseMutateAsyncFunction<CartResponse, Error, {
|
|
14
|
-
itemId: string;
|
|
15
|
-
quantity: number;
|
|
16
|
-
}, unknown>;
|
|
17
|
-
removeItem: _tanstack_react_query.UseMutateAsyncFunction<CartResponse, Error, {
|
|
18
|
-
itemId: string;
|
|
19
|
-
}, unknown>;
|
|
20
|
-
isAdding: boolean;
|
|
21
|
-
isUpdating: boolean;
|
|
22
|
-
isRemoving: boolean;
|
|
23
|
-
cart: Cart | undefined;
|
|
24
|
-
isLoading: boolean;
|
|
25
|
-
isFetching: boolean;
|
|
26
|
-
refreshCart: (options?: _tanstack_react_query.RefetchOptions) => Promise<_tanstack_react_query.QueryObserverResult<CartResponse, Error>>;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export { useCart };
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { useQuery } from "@tanstack/react-query";
|
|
2
|
-
import { CACHE_TAGS } from "../../global/constants/tags";
|
|
3
|
-
import { useBrinkConfig } from "../contexts/cart";
|
|
4
|
-
import { getCartQueryFn } from "../queries/getCartQueryFn";
|
|
5
|
-
import { useCartActions } from "./useCartActions";
|
|
6
|
-
const useCart = () => {
|
|
7
|
-
const brinkConfig = useBrinkConfig();
|
|
8
|
-
const getCartQuery = useQuery({
|
|
9
|
-
queryKey: [CACHE_TAGS.cart],
|
|
10
|
-
queryFn: getCartQueryFn(brinkConfig),
|
|
11
|
-
refetchOnMount: false
|
|
12
|
-
});
|
|
13
|
-
const currentCart = getCartQuery.data;
|
|
14
|
-
const cartActions = useCartActions(brinkConfig, currentCart);
|
|
15
|
-
return {
|
|
16
|
-
cart: currentCart?.cart,
|
|
17
|
-
isLoading: getCartQuery.isLoading,
|
|
18
|
-
isFetching: getCartQuery.isFetching,
|
|
19
|
-
refreshCart: getCartQuery.refetch,
|
|
20
|
-
...cartActions
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
export {
|
|
24
|
-
useCart
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=useCart.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/cart/hooks/useCart.tsx"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\"\nimport { CACHE_TAGS } from \"../../global/constants/tags\"\nimport { useBrinkConfig } from \"../contexts/cart\"\nimport { getCartQueryFn } from \"../queries/getCartQueryFn\"\nimport { useCartActions } from \"./useCartActions\"\n\n/**\n * Hook to manage cart state and actions.\n * Provides the current cart, loading states, and functions to modify the cart.\n */\nexport const useCart = () => {\n const brinkConfig = useBrinkConfig()\n\n const getCartQuery = useQuery({\n queryKey: [CACHE_TAGS.cart],\n queryFn: getCartQueryFn(brinkConfig),\n refetchOnMount: false,\n })\n\n const currentCart = getCartQuery.data\n\n const cartActions = useCartActions(brinkConfig, currentCart)\n\n return {\n cart: currentCart?.cart,\n isLoading: getCartQuery.isLoading,\n isFetching: getCartQuery.isFetching,\n refreshCart: getCartQuery.refetch,\n ...cartActions,\n }\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAMxB,MAAM,UAAU,MAAM;AAC3B,QAAM,cAAc,eAAe;AAEnC,QAAM,eAAe,SAAS;AAAA,IAC5B,UAAU,CAAC,WAAW,IAAI;AAAA,IAC1B,SAAS,eAAe,WAAW;AAAA,IACnC,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,cAAc,aAAa;AAEjC,QAAM,cAAc,eAAe,aAAa,WAAW;AAE3D,SAAO;AAAA,IACL,MAAM,aAAa;AAAA,IACnB,WAAW,aAAa;AAAA,IACxB,YAAY,aAAa;AAAA,IACzB,aAAa,aAAa;AAAA,IAC1B,GAAG;AAAA,EACL;AACF;","names":[]}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
2
|
-
import { BrinkConfig } from '../contexts/cart.mjs';
|
|
3
|
-
import { CartResponse } from '../types/cart.mjs';
|
|
4
|
-
import 'react';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Hook to provide cart action mutations: add, update, and remove items.
|
|
8
|
-
*/
|
|
9
|
-
declare const useCartActions: (brinkConfig: BrinkConfig, currentCart: CartResponse | undefined) => {
|
|
10
|
-
addItem: _tanstack_react_query.UseMutateAsyncFunction<CartResponse, Error, {
|
|
11
|
-
productVariantId: string;
|
|
12
|
-
quantity?: number;
|
|
13
|
-
}, unknown>;
|
|
14
|
-
updateItem: _tanstack_react_query.UseMutateAsyncFunction<CartResponse, Error, {
|
|
15
|
-
itemId: string;
|
|
16
|
-
quantity: number;
|
|
17
|
-
}, unknown>;
|
|
18
|
-
removeItem: _tanstack_react_query.UseMutateAsyncFunction<CartResponse, Error, {
|
|
19
|
-
itemId: string;
|
|
20
|
-
}, unknown>;
|
|
21
|
-
isAdding: boolean;
|
|
22
|
-
isUpdating: boolean;
|
|
23
|
-
isRemoving: boolean;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export { useCartActions };
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|
2
|
-
import { CACHE_TAGS } from "../../global/constants/tags";
|
|
3
|
-
import { addToCartQueryFn } from "../queries/addToCartQueryFn";
|
|
4
|
-
import { removeCartItemQueryFn } from "../queries/removeCartItemQueryFn";
|
|
5
|
-
import { updateCartItemFn } from "../queries/updateCartItemQueryFn";
|
|
6
|
-
const useCartActions = (brinkConfig, currentCart) => {
|
|
7
|
-
const queryClient = useQueryClient();
|
|
8
|
-
const addItemMutation = useMutation({
|
|
9
|
-
mutationFn: async ({
|
|
10
|
-
productVariantId,
|
|
11
|
-
quantity = 1
|
|
12
|
-
}) => {
|
|
13
|
-
const existingItem = currentCart?.cart.items.find(
|
|
14
|
-
(i) => i.productVariantId === productVariantId
|
|
15
|
-
);
|
|
16
|
-
if (existingItem) {
|
|
17
|
-
return updateCartItemFn(brinkConfig)({
|
|
18
|
-
itemId: existingItem.id,
|
|
19
|
-
quantity: existingItem.quantity + quantity
|
|
20
|
-
});
|
|
21
|
-
} else {
|
|
22
|
-
return addToCartQueryFn(brinkConfig)({ productVariantId, quantity });
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
onSuccess: (data) => {
|
|
26
|
-
queryClient.setQueryData([CACHE_TAGS.cart], data);
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
const updateItemMutation = useMutation({
|
|
30
|
-
mutationFn: async ({ itemId, quantity }) => {
|
|
31
|
-
if (quantity <= 0) {
|
|
32
|
-
return removeCartItemQueryFn(brinkConfig)({ itemId });
|
|
33
|
-
}
|
|
34
|
-
return updateCartItemFn(brinkConfig)({ itemId, quantity });
|
|
35
|
-
},
|
|
36
|
-
onSuccess: (data) => {
|
|
37
|
-
queryClient.setQueryData([CACHE_TAGS.cart], data);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
const removeItemMutation = useMutation({
|
|
41
|
-
mutationFn: async ({ itemId }) => removeCartItemQueryFn(brinkConfig)({ itemId }),
|
|
42
|
-
onSuccess: (data) => {
|
|
43
|
-
queryClient.setQueryData([CACHE_TAGS.cart], data);
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
return {
|
|
47
|
-
addItem: addItemMutation.mutateAsync,
|
|
48
|
-
updateItem: updateItemMutation.mutateAsync,
|
|
49
|
-
removeItem: removeItemMutation.mutateAsync,
|
|
50
|
-
isAdding: addItemMutation.isPending,
|
|
51
|
-
isUpdating: updateItemMutation.isPending,
|
|
52
|
-
isRemoving: removeItemMutation.isPending
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
export {
|
|
56
|
-
useCartActions
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=useCartActions.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/cart/hooks/useCartActions.tsx"],"sourcesContent":["// cartService.ts\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\"\nimport { CACHE_TAGS } from \"../../global/constants/tags\"\nimport { BrinkConfig } from \"../contexts/cart\"\nimport { addToCartQueryFn } from \"../queries/addToCartQueryFn\"\nimport { removeCartItemQueryFn } from \"../queries/removeCartItemQueryFn\"\nimport { updateCartItemFn } from \"../queries/updateCartItemQueryFn\"\nimport { CartResponse } from \"../types/cart\"\n\n/**\n * Hook to provide cart action mutations: add, update, and remove items.\n */\nexport const useCartActions = (brinkConfig: BrinkConfig, currentCart: CartResponse | undefined) => {\n const queryClient = useQueryClient()\n\n // Logic for adding item\n const addItemMutation = useMutation({\n mutationFn: async ({\n productVariantId,\n quantity = 1,\n }: {\n productVariantId: string\n quantity?: number\n }) => {\n const existingItem = currentCart?.cart.items.find(\n (i) => i.productVariantId === productVariantId\n )\n\n // If we already have the item, increment quantity instead of adding a new one.\n if (existingItem) {\n return updateCartItemFn(brinkConfig)({\n itemId: existingItem.id,\n quantity: existingItem.quantity + quantity,\n })\n } else {\n return addToCartQueryFn(brinkConfig)({ productVariantId, quantity })\n }\n },\n onSuccess: (data) => {\n queryClient.setQueryData([CACHE_TAGS.cart], data)\n },\n })\n\n // Update item mutation\n const updateItemMutation = useMutation({\n mutationFn: async ({ itemId, quantity }: { itemId: string; quantity: number }) => {\n // If quantity is zero or less, remove the item\n if (quantity <= 0) {\n return removeCartItemQueryFn(brinkConfig)({ itemId })\n }\n return updateCartItemFn(brinkConfig)({ itemId, quantity })\n },\n onSuccess: (data) => {\n queryClient.setQueryData([CACHE_TAGS.cart], data)\n },\n })\n\n // Remove item mutation\n const removeItemMutation = useMutation({\n mutationFn: async ({ itemId }: { itemId: string }) =>\n removeCartItemQueryFn(brinkConfig)({ itemId }),\n onSuccess: (data) => {\n queryClient.setQueryData([CACHE_TAGS.cart], data)\n },\n })\n\n return {\n addItem: addItemMutation.mutateAsync,\n updateItem: updateItemMutation.mutateAsync,\n removeItem: removeItemMutation.mutateAsync,\n isAdding: addItemMutation.isPending,\n isUpdating: updateItemMutation.isPending,\n isRemoving: removeItemMutation.isPending,\n }\n}\n"],"mappings":"AACA,SAAS,aAAa,sBAAsB;AAC5C,SAAS,kBAAkB;AAE3B,SAAS,wBAAwB;AACjC,SAAS,6BAA6B;AACtC,SAAS,wBAAwB;AAM1B,MAAM,iBAAiB,CAAC,aAA0B,gBAA0C;AACjG,QAAM,cAAc,eAAe;AAGnC,QAAM,kBAAkB,YAAY;AAAA,IAClC,YAAY,OAAO;AAAA,MACjB;AAAA,MACA,WAAW;AAAA,IACb,MAGM;AACJ,YAAM,eAAe,aAAa,KAAK,MAAM;AAAA,QAC3C,CAAC,MAAM,EAAE,qBAAqB;AAAA,MAChC;AAGA,UAAI,cAAc;AAChB,eAAO,iBAAiB,WAAW,EAAE;AAAA,UACnC,QAAQ,aAAa;AAAA,UACrB,UAAU,aAAa,WAAW;AAAA,QACpC,CAAC;AAAA,MACH,OAAO;AACL,eAAO,iBAAiB,WAAW,EAAE,EAAE,kBAAkB,SAAS,CAAC;AAAA,MACrE;AAAA,IACF;AAAA,IACA,WAAW,CAAC,SAAS;AACnB,kBAAY,aAAa,CAAC,WAAW,IAAI,GAAG,IAAI;AAAA,IAClD;AAAA,EACF,CAAC;AAGD,QAAM,qBAAqB,YAAY;AAAA,IACrC,YAAY,OAAO,EAAE,QAAQ,SAAS,MAA4C;AAEhF,UAAI,YAAY,GAAG;AACjB,eAAO,sBAAsB,WAAW,EAAE,EAAE,OAAO,CAAC;AAAA,MACtD;AACA,aAAO,iBAAiB,WAAW,EAAE,EAAE,QAAQ,SAAS,CAAC;AAAA,IAC3D;AAAA,IACA,WAAW,CAAC,SAAS;AACnB,kBAAY,aAAa,CAAC,WAAW,IAAI,GAAG,IAAI;AAAA,IAClD;AAAA,EACF,CAAC;AAGD,QAAM,qBAAqB,YAAY;AAAA,IACrC,YAAY,OAAO,EAAE,OAAO,MAC1B,sBAAsB,WAAW,EAAE,EAAE,OAAO,CAAC;AAAA,IAC/C,WAAW,CAAC,SAAS;AACnB,kBAAY,aAAa,CAAC,WAAW,IAAI,GAAG,IAAI;AAAA,IAClD;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL,SAAS,gBAAgB;AAAA,IACzB,YAAY,mBAAmB;AAAA,IAC/B,YAAY,mBAAmB;AAAA,IAC/B,UAAU,gBAAgB;AAAA,IAC1B,YAAY,mBAAmB;AAAA,IAC/B,YAAY,mBAAmB;AAAA,EACjC;AACF;","names":[]}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { BrinkConfig } from '../contexts/cart.mjs';
|
|
2
|
-
import { CartResponse } from '../types/cart.mjs';
|
|
3
|
-
import 'react';
|
|
4
|
-
|
|
5
|
-
declare const addToCartQueryFn: (brinkConfig: BrinkConfig) => ({ productVariantId, quantity, }: {
|
|
6
|
-
productVariantId: string;
|
|
7
|
-
quantity?: number;
|
|
8
|
-
}) => Promise<CartResponse>;
|
|
9
|
-
|
|
10
|
-
export { addToCartQueryFn };
|