@gfed-medusa/sf-lib-common 1.1.0 → 2.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/dist/components/breadcrumbs/index.d.ts +4 -6
- package/dist/components/breadcrumbs/index.d.ts.map +1 -1
- package/dist/components/breadcrumbs/index.js.map +1 -1
- package/dist/components/cart-button/index.d.ts +2 -2
- package/dist/components/cart-button/index.d.ts.map +1 -1
- package/dist/components/cart-button/index.js +11 -17
- package/dist/components/cart-button/index.js.map +1 -0
- package/dist/components/cart-dropdown/index.d.ts +3 -3
- package/dist/components/cart-dropdown/index.d.ts.map +1 -1
- package/dist/components/cart-dropdown/index.js +193 -16
- package/dist/components/cart-dropdown/index.js.map +1 -0
- package/dist/components/cart-mismatch-banner/index.d.ts +3 -3
- package/dist/components/cart-mismatch-banner/index.d.ts.map +1 -1
- package/dist/components/cart-mismatch-banner/index.js +1 -8
- package/dist/components/cart-mismatch-banner/index.js.map +1 -1
- package/dist/components/country-select/index.d.ts +1 -1
- package/dist/components/delete-button/index.d.ts +2 -2
- package/dist/components/delete-button/index.js +27 -11
- package/dist/components/delete-button/index.js.map +1 -0
- package/dist/components/error-message/index.d.ts +2 -2
- package/dist/components/error-message/index.d.ts.map +1 -1
- package/dist/components/footer/index.d.ts +2 -2
- package/dist/components/footer/index.d.ts.map +1 -1
- package/dist/components/footer/index.js +5 -10
- package/dist/components/footer/index.js.map +1 -1
- package/dist/components/free-shipping-price-nudge/index.d.ts +3 -3
- package/dist/components/free-shipping-price-nudge/index.d.ts.map +1 -1
- package/dist/components/free-shipping-price-nudge/index.js +2 -2
- package/dist/components/interactive-link/index.d.ts +2 -2
- package/dist/components/interactive-link/index.js +1 -1
- package/dist/components/layout-country-select/index.d.ts +4 -4
- package/dist/components/layout-country-select/index.js +89 -11
- package/dist/components/layout-country-select/index.js.map +1 -0
- package/dist/components/line-item-options/index.d.ts +3 -3
- package/dist/components/line-item-options/index.js +15 -2
- package/dist/components/line-item-options/index.js.map +1 -0
- package/dist/components/line-item-price/index.d.ts +3 -3
- package/dist/components/line-item-price/index.d.ts.map +1 -1
- package/dist/components/line-item-price/index.js +46 -2
- package/dist/components/line-item-price/index.js.map +1 -0
- package/dist/components/localized-client-link/index.d.ts +5 -12
- package/dist/components/localized-client-link/index.d.ts.map +1 -1
- package/dist/components/localized-client-link/index.js +19 -2
- package/dist/components/localized-client-link/index.js.map +1 -0
- package/dist/components/modal/index.d.ts +2 -2
- package/dist/components/modal/index.js +101 -3
- package/dist/components/modal/index.js.map +1 -0
- package/dist/components/nav/index.d.ts +2 -2
- package/dist/components/nav/index.js +6 -25
- package/dist/components/nav/index.js.map +1 -1
- package/dist/components/portable-text/index.d.ts +3 -3
- package/dist/components/portable-text/index.js +329 -2
- package/dist/components/portable-text/index.js.map +1 -0
- package/dist/components/preview-price/index.d.ts +1 -1
- package/dist/components/preview-price/index.js +19 -2
- package/dist/components/preview-price/index.js.map +1 -0
- package/dist/components/product-card/index.d.ts +2 -2
- package/dist/components/product-card/index.d.ts.map +1 -1
- package/dist/components/product-card/index.js +3 -4
- package/dist/components/product-card/index.js.map +1 -1
- package/dist/components/product-preview/index.d.ts +3 -3
- package/dist/components/product-preview/index.d.ts.map +1 -1
- package/dist/components/product-preview/index.js +4 -4
- package/dist/components/search-modal/index.d.ts +2 -2
- package/dist/components/search-modal/index.d.ts.map +1 -1
- package/dist/components/search-modal/index.js +135 -9
- package/dist/components/search-modal/index.js.map +1 -0
- package/dist/components/side-menu/index.d.ts +3 -3
- package/dist/components/side-menu/index.js +96 -13
- package/dist/components/side-menu/index.js.map +1 -0
- package/dist/components/thumbnail/index.js +43 -2
- package/dist/components/thumbnail/index.js.map +1 -0
- package/dist/lib/config/medusa.js +11 -2
- package/dist/lib/config/medusa.js.map +1 -0
- package/dist/lib/context/apollo-context.js +1 -2
- package/dist/lib/context/apollo-context.js.map +1 -1
- package/dist/lib/context/modal-context.d.ts +2 -2
- package/dist/lib/context/modal-context.js +19 -2
- package/dist/lib/context/modal-context.js.map +1 -0
- package/dist/lib/data/cart.d.ts +1 -1
- package/dist/lib/data/cart.d.ts.map +1 -1
- package/dist/lib/data/cart.js +102 -10
- package/dist/lib/data/cart.js.map +1 -0
- package/dist/lib/data/categories.d.ts +1 -1
- package/dist/lib/data/categories.js +15 -5
- package/dist/lib/data/categories.js.map +1 -0
- package/dist/lib/data/collections.d.ts +1 -1
- package/dist/lib/data/collections.js +21 -5
- package/dist/lib/data/collections.js.map +1 -0
- package/dist/lib/data/cookies.d.ts +2 -1
- package/dist/lib/data/cookies.d.ts.map +1 -1
- package/dist/lib/data/cookies.js +45 -2
- package/dist/lib/data/cookies.js.map +1 -0
- package/dist/lib/data/customer.d.ts +1 -1
- package/dist/lib/data/customer.d.ts.map +1 -1
- package/dist/lib/data/customer.js +39 -9
- package/dist/lib/data/customer.js.map +1 -0
- package/dist/lib/data/footer.js +15 -4
- package/dist/lib/data/footer.js.map +1 -0
- package/dist/lib/data/orders.d.ts +1 -1
- package/dist/lib/data/orders.js +4 -4
- package/dist/lib/data/regions.d.ts +1 -1
- package/dist/lib/data/regions.js +33 -4
- package/dist/lib/data/regions.js.map +1 -0
- package/dist/lib/data/search.d.ts +1 -1
- package/dist/lib/data/search.js +20 -5
- package/dist/lib/data/search.js.map +1 -0
- package/dist/lib/gql/apollo-client.js +66 -2
- package/dist/lib/gql/apollo-client.js.map +1 -0
- package/dist/lib/gql/fragments/cart.d.ts +9 -9
- package/dist/lib/gql/fragments/cart.d.ts.map +1 -1
- package/dist/lib/gql/fragments/cart.js +141 -3
- package/dist/{cart-BNoIGQmw.js.map → lib/gql/fragments/cart.js.map} +1 -1
- package/dist/lib/gql/fragments/customer.d.ts +3 -3
- package/dist/lib/gql/fragments/customer.js +41 -2
- package/dist/{customer-CgN4zI00.js.map → lib/gql/fragments/customer.js.map} +1 -1
- package/dist/lib/gql/fragments/product.d.ts +8 -8
- package/dist/lib/gql/fragments/product.js +89 -2
- package/dist/{product-COu5D1mS.js.map → lib/gql/fragments/product.js.map} +1 -1
- package/dist/lib/gql/mutations/cart.d.ts +4 -4
- package/dist/lib/gql/mutations/cart.d.ts.map +1 -1
- package/dist/lib/gql/mutations/cart.js +41 -4
- package/dist/{cart-IHaLnQC4.js.map → lib/gql/mutations/cart.js.map} +1 -1
- package/dist/lib/gql/mutations/customer.js +0 -1
- package/dist/lib/gql/queries/cart.d.ts +2 -2
- package/dist/lib/gql/queries/cart.d.ts.map +1 -1
- package/dist/lib/gql/queries/cart.js +15 -4
- package/dist/{cart-DH8urwwT.js.map → lib/gql/queries/cart.js.map} +1 -1
- package/dist/lib/gql/queries/collections.d.ts +2 -2
- package/dist/lib/gql/queries/collections.d.ts.map +1 -1
- package/dist/lib/gql/queries/collections.js +19 -3
- package/dist/{collections-DMv3UYgC.js.map → lib/gql/queries/collections.js.map} +1 -1
- package/dist/lib/gql/queries/customer.d.ts +2 -2
- package/dist/lib/gql/queries/customer.d.ts.map +1 -1
- package/dist/lib/gql/queries/customer.js +15 -3
- package/dist/{customer-DIJz6m7L.js.map → lib/gql/queries/customer.js.map} +1 -1
- package/dist/lib/gql/queries/footer.d.ts +2 -2
- package/dist/lib/gql/queries/footer.d.ts.map +1 -1
- package/dist/lib/gql/queries/footer.js +21 -2
- package/dist/lib/gql/queries/footer.js.map +1 -0
- package/dist/lib/gql/queries/product.d.ts +3 -3
- package/dist/lib/gql/queries/product.d.ts.map +1 -1
- package/dist/lib/gql/queries/product.js +46 -3
- package/dist/{product-C3HQUIgX.js.map → lib/gql/queries/product.js.map} +1 -1
- package/dist/lib/hooks/use-apollo.d.ts +2 -2
- package/dist/lib/hooks/use-apollo.js +10 -3
- package/dist/lib/hooks/use-apollo.js.map +1 -0
- package/dist/lib/hooks/use-search.d.ts +1 -1
- package/dist/lib/hooks/use-search.js +66 -6
- package/dist/lib/hooks/use-search.js.map +1 -0
- package/dist/lib/hooks/use-toggle-state.d.ts +23 -2
- package/dist/lib/hooks/use-toggle-state.d.ts.map +1 -0
- package/dist/lib/utils/data-types.js +9 -2
- package/dist/lib/utils/data-types.js.map +1 -0
- package/dist/lib/utils/env.js +1 -1
- package/dist/lib/utils/env.js.map +1 -1
- package/dist/lib/utils/get-percentage-diff.js +7 -2
- package/dist/lib/utils/get-percentage-diff.js.map +1 -0
- package/dist/lib/utils/get-product-price.d.ts +1 -1
- package/dist/lib/utils/get-product-price.js +46 -2
- package/dist/lib/utils/get-product-price.js.map +1 -0
- package/dist/lib/utils/medusa-error.js +16 -2
- package/dist/lib/utils/medusa-error.js.map +1 -0
- package/dist/lib/utils/money.js +14 -2
- package/dist/lib/utils/money.js.map +1 -0
- package/dist/lib/utils/normalize-functions.d.ts +1 -1
- package/dist/lib/utils/normalize-functions.js +69 -2
- package/dist/lib/utils/normalize-functions.js.map +1 -0
- package/dist/types/graphql.d.ts +1368 -2
- package/dist/types/graphql.d.ts.map +1 -0
- package/dist/types/prices.d.ts +20 -2
- package/dist/types/prices.d.ts.map +1 -0
- package/dist/types/prices.js +0 -1
- package/package.json +12 -12
- package/dist/apollo-client-Bw50r80c.js +0 -66
- package/dist/apollo-client-Bw50r80c.js.map +0 -1
- package/dist/cart-BNoIGQmw.js +0 -142
- package/dist/cart-DH8urwwT.js +0 -16
- package/dist/cart-IHaLnQC4.js +0 -42
- package/dist/cart-button-Dj_zRxop.js +0 -12
- package/dist/cart-button-Dj_zRxop.js.map +0 -1
- package/dist/cart-dropdown-D_PUJarp.js +0 -195
- package/dist/cart-dropdown-D_PUJarp.js.map +0 -1
- package/dist/cart-xkcyWLfU.js +0 -103
- package/dist/cart-xkcyWLfU.js.map +0 -1
- package/dist/categories-B-RYCIZ3.js +0 -16
- package/dist/categories-B-RYCIZ3.js.map +0 -1
- package/dist/collections-BgyvhW2p.js +0 -22
- package/dist/collections-BgyvhW2p.js.map +0 -1
- package/dist/collections-DMv3UYgC.js +0 -20
- package/dist/cookies-lksVIe4_.js +0 -38
- package/dist/cookies-lksVIe4_.js.map +0 -1
- package/dist/customer-CgN4zI00.js +0 -42
- package/dist/customer-ClewjBBr.js +0 -38
- package/dist/customer-ClewjBBr.js.map +0 -1
- package/dist/customer-DIJz6m7L.js +0 -16
- package/dist/data-types-CTPJXmJH.js +0 -10
- package/dist/data-types-CTPJXmJH.js.map +0 -1
- package/dist/delete-button-Bnm5bof2.js +0 -28
- package/dist/delete-button-Bnm5bof2.js.map +0 -1
- package/dist/footer-BvNV-R9D.js +0 -16
- package/dist/footer-BvNV-R9D.js.map +0 -1
- package/dist/footer-DCtgtjKS.js +0 -76
- package/dist/footer-DCtgtjKS.js.map +0 -1
- package/dist/get-percentage-diff-B_UVOFgE.js +0 -8
- package/dist/get-percentage-diff-B_UVOFgE.js.map +0 -1
- package/dist/get-product-price-DKWc76ev.js +0 -47
- package/dist/get-product-price-DKWc76ev.js.map +0 -1
- package/dist/graphql-CdTGi4Pp.d.ts +0 -1368
- package/dist/graphql-CdTGi4Pp.d.ts.map +0 -1
- package/dist/layout-country-select-C7Ra-opl.js +0 -90
- package/dist/layout-country-select-C7Ra-opl.js.map +0 -1
- package/dist/line-item-options-l_eRZIIq.js +0 -16
- package/dist/line-item-options-l_eRZIIq.js.map +0 -1
- package/dist/line-item-price-BlTwskFC.js +0 -47
- package/dist/line-item-price-BlTwskFC.js.map +0 -1
- package/dist/localized-client-link-CthmRcvb.js +0 -22
- package/dist/localized-client-link-CthmRcvb.js.map +0 -1
- package/dist/medusa-TumrpCF2.js +0 -12
- package/dist/medusa-TumrpCF2.js.map +0 -1
- package/dist/medusa-error-DDhA6RGC.js +0 -17
- package/dist/medusa-error-DDhA6RGC.js.map +0 -1
- package/dist/modal-BASYY-YM.js +0 -102
- package/dist/modal-BASYY-YM.js.map +0 -1
- package/dist/modal-context-02cA-7jy.js +0 -20
- package/dist/modal-context-02cA-7jy.js.map +0 -1
- package/dist/money-DVQGzXns.js +0 -15
- package/dist/money-DVQGzXns.js.map +0 -1
- package/dist/normalize-functions-Bqr-JkYn.js +0 -70
- package/dist/normalize-functions-Bqr-JkYn.js.map +0 -1
- package/dist/portable-text-CuI022GH.js +0 -330
- package/dist/portable-text-CuI022GH.js.map +0 -1
- package/dist/preview-price-_4sxkXQs.js +0 -20
- package/dist/preview-price-_4sxkXQs.js.map +0 -1
- package/dist/prices-eO1YBciD.d.ts +0 -20
- package/dist/prices-eO1YBciD.d.ts.map +0 -1
- package/dist/product-C3HQUIgX.js +0 -47
- package/dist/product-COu5D1mS.js +0 -90
- package/dist/regions-r1AvxfT8.js +0 -34
- package/dist/regions-r1AvxfT8.js.map +0 -1
- package/dist/search-D7Gw7jAk.js +0 -21
- package/dist/search-D7Gw7jAk.js.map +0 -1
- package/dist/search-modal-DaXadYWM.js +0 -137
- package/dist/search-modal-DaXadYWM.js.map +0 -1
- package/dist/side-menu-B6IjTd5M.js +0 -97
- package/dist/side-menu-B6IjTd5M.js.map +0 -1
- package/dist/thumbnail-C0TU3rh-.js +0 -44
- package/dist/thumbnail-C0TU3rh-.js.map +0 -1
- package/dist/use-apollo-BxAFd1Y5.js +0 -11
- package/dist/use-apollo-BxAFd1Y5.js.map +0 -1
- package/dist/use-search-VX-u8o1D.js +0 -67
- package/dist/use-search-VX-u8o1D.js.map +0 -1
- package/dist/use-toggle-state-DI4Gwlfj.d.ts +0 -23
- package/dist/use-toggle-state-DI4Gwlfj.d.ts.map +0 -1
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import { t as convertToLocale } from "./money-DVQGzXns.js";
|
|
2
|
-
import { t as DeleteButton } from "./delete-button-Bnm5bof2.js";
|
|
3
|
-
import { t as LineItemOptions } from "./line-item-options-l_eRZIIq.js";
|
|
4
|
-
import { t as LineItemPrice } from "./line-item-price-BlTwskFC.js";
|
|
5
|
-
import { t as LocalizedClientLink } from "./localized-client-link-CthmRcvb.js";
|
|
6
|
-
import { t as Thumbnail } from "./thumbnail-C0TU3rh-.js";
|
|
7
|
-
import { Fragment, useEffect, useRef, useState } from "react";
|
|
8
|
-
import { usePathname } from "next/navigation";
|
|
9
|
-
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
-
import { Popover, PopoverButton, PopoverPanel, Transition } from "@headlessui/react";
|
|
11
|
-
import { Button } from "@medusajs/ui";
|
|
12
|
-
|
|
13
|
-
//#region src/components/cart-dropdown/index.tsx
|
|
14
|
-
const CartDropdown = ({ cart: cartState }) => {
|
|
15
|
-
const [activeTimer, setActiveTimer] = useState(void 0);
|
|
16
|
-
const [cartDropdownOpen, setCartDropdownOpen] = useState(false);
|
|
17
|
-
const open = () => setCartDropdownOpen(true);
|
|
18
|
-
const close = () => setCartDropdownOpen(false);
|
|
19
|
-
const totalItems = cartState?.items?.reduce((acc, item) => {
|
|
20
|
-
return acc + item.quantity;
|
|
21
|
-
}, 0) || 0;
|
|
22
|
-
const subtotal = cartState?.subtotal ?? 0;
|
|
23
|
-
const itemRef = useRef(totalItems || 0);
|
|
24
|
-
const timedOpen = () => {
|
|
25
|
-
open();
|
|
26
|
-
setActiveTimer(setTimeout(close, 5e3));
|
|
27
|
-
};
|
|
28
|
-
const openAndCancel = () => {
|
|
29
|
-
if (activeTimer) clearTimeout(activeTimer);
|
|
30
|
-
open();
|
|
31
|
-
};
|
|
32
|
-
useEffect(() => {
|
|
33
|
-
return () => {
|
|
34
|
-
if (activeTimer) clearTimeout(activeTimer);
|
|
35
|
-
};
|
|
36
|
-
}, [activeTimer]);
|
|
37
|
-
const pathname = usePathname();
|
|
38
|
-
useEffect(() => {
|
|
39
|
-
if (itemRef.current !== totalItems && !pathname.includes("/cart")) timedOpen();
|
|
40
|
-
}, [totalItems, itemRef.current]);
|
|
41
|
-
return /* @__PURE__ */ jsx("div", {
|
|
42
|
-
className: "z-50 h-full",
|
|
43
|
-
onMouseEnter: openAndCancel,
|
|
44
|
-
onMouseLeave: close,
|
|
45
|
-
children: /* @__PURE__ */ jsxs(Popover, {
|
|
46
|
-
className: "relative h-full",
|
|
47
|
-
children: [/* @__PURE__ */ jsx(PopoverButton, {
|
|
48
|
-
className: "h-full",
|
|
49
|
-
children: /* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
50
|
-
className: "hover:text-ui-fg-base",
|
|
51
|
-
href: "/cart",
|
|
52
|
-
"data-testid": "nav-cart-link",
|
|
53
|
-
children: `Cart (${totalItems})`
|
|
54
|
-
})
|
|
55
|
-
}), /* @__PURE__ */ jsx(Transition, {
|
|
56
|
-
show: cartDropdownOpen,
|
|
57
|
-
as: Fragment,
|
|
58
|
-
enter: "transition ease-out duration-200",
|
|
59
|
-
enterFrom: "opacity-0 translate-y-1",
|
|
60
|
-
enterTo: "opacity-100 translate-y-0",
|
|
61
|
-
leave: "transition ease-in duration-150",
|
|
62
|
-
leaveFrom: "opacity-100 translate-y-0",
|
|
63
|
-
leaveTo: "opacity-0 translate-y-1",
|
|
64
|
-
children: /* @__PURE__ */ jsxs(PopoverPanel, {
|
|
65
|
-
static: true,
|
|
66
|
-
className: "text-ui-fg-base small:block absolute top-[calc(100%+1px)] right-0 hidden w-[420px] border-x border-b border-gray-200 bg-white",
|
|
67
|
-
"data-testid": "nav-cart-dropdown",
|
|
68
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
69
|
-
className: "flex items-center justify-center p-4",
|
|
70
|
-
children: /* @__PURE__ */ jsx("h3", {
|
|
71
|
-
className: "text-large-semi",
|
|
72
|
-
children: "Cart"
|
|
73
|
-
})
|
|
74
|
-
}), cartState && cartState.items?.length ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
|
|
75
|
-
className: "no-scrollbar grid max-h-[402px] grid-cols-1 gap-y-8 overflow-y-scroll p-px px-4",
|
|
76
|
-
children: cartState.items.sort((a, b) => {
|
|
77
|
-
return (a.createdAt ?? "") > (b.createdAt ?? "") ? -1 : 1;
|
|
78
|
-
}).map((item) => /* @__PURE__ */ jsxs("div", {
|
|
79
|
-
className: "grid grid-cols-[122px_1fr] gap-x-4",
|
|
80
|
-
"data-testid": "cart-item",
|
|
81
|
-
children: [/* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
82
|
-
href: `/products/${item.productHandle}`,
|
|
83
|
-
className: "w-24",
|
|
84
|
-
children: /* @__PURE__ */ jsx(Thumbnail, {
|
|
85
|
-
thumbnail: item.thumbnail,
|
|
86
|
-
images: item.variant?.product?.images,
|
|
87
|
-
size: "square"
|
|
88
|
-
})
|
|
89
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
90
|
-
className: "flex flex-1 flex-col justify-between",
|
|
91
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
92
|
-
className: "flex flex-1 flex-col",
|
|
93
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
94
|
-
className: "flex items-start justify-between",
|
|
95
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
96
|
-
className: "mr-4 flex w-[180px] flex-col overflow-ellipsis whitespace-nowrap",
|
|
97
|
-
children: [
|
|
98
|
-
/* @__PURE__ */ jsx("h3", {
|
|
99
|
-
className: "text-base-regular overflow-hidden text-ellipsis",
|
|
100
|
-
children: /* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
101
|
-
href: `/products/${item.productHandle}`,
|
|
102
|
-
"data-testid": "product-link",
|
|
103
|
-
children: item.title
|
|
104
|
-
})
|
|
105
|
-
}),
|
|
106
|
-
/* @__PURE__ */ jsx(LineItemOptions, {
|
|
107
|
-
variant: item.variant,
|
|
108
|
-
"data-testid": "cart-item-variant",
|
|
109
|
-
"data-value": item.variant
|
|
110
|
-
}),
|
|
111
|
-
/* @__PURE__ */ jsxs("span", {
|
|
112
|
-
"data-testid": "cart-item-quantity",
|
|
113
|
-
"data-value": item.quantity,
|
|
114
|
-
children: ["Quantity: ", item.quantity]
|
|
115
|
-
})
|
|
116
|
-
]
|
|
117
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
118
|
-
className: "flex justify-end",
|
|
119
|
-
children: /* @__PURE__ */ jsx(LineItemPrice, {
|
|
120
|
-
item,
|
|
121
|
-
style: "tight",
|
|
122
|
-
currencyCode: cartState.currencyCode
|
|
123
|
-
})
|
|
124
|
-
})]
|
|
125
|
-
})
|
|
126
|
-
}), /* @__PURE__ */ jsx(DeleteButton, {
|
|
127
|
-
id: item.id,
|
|
128
|
-
className: "mt-1",
|
|
129
|
-
"data-testid": "cart-item-remove-button",
|
|
130
|
-
children: "Remove"
|
|
131
|
-
})]
|
|
132
|
-
})]
|
|
133
|
-
}, item.id))
|
|
134
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
135
|
-
className: "text-small-regular flex flex-col gap-y-4 p-4",
|
|
136
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
137
|
-
className: "flex items-center justify-between",
|
|
138
|
-
children: [/* @__PURE__ */ jsxs("span", {
|
|
139
|
-
className: "text-ui-fg-base font-semibold",
|
|
140
|
-
children: [
|
|
141
|
-
"Subtotal",
|
|
142
|
-
" ",
|
|
143
|
-
/* @__PURE__ */ jsx("span", {
|
|
144
|
-
className: "font-normal",
|
|
145
|
-
children: "(excl. taxes)"
|
|
146
|
-
})
|
|
147
|
-
]
|
|
148
|
-
}), /* @__PURE__ */ jsx("span", {
|
|
149
|
-
className: "text-large-semi",
|
|
150
|
-
"data-testid": "cart-subtotal",
|
|
151
|
-
"data-value": subtotal,
|
|
152
|
-
children: convertToLocale({
|
|
153
|
-
amount: subtotal,
|
|
154
|
-
currency_code: cartState.currencyCode
|
|
155
|
-
})
|
|
156
|
-
})]
|
|
157
|
-
}), /* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
158
|
-
href: "/cart",
|
|
159
|
-
passHref: true,
|
|
160
|
-
children: /* @__PURE__ */ jsx(Button, {
|
|
161
|
-
className: "w-full",
|
|
162
|
-
size: "large",
|
|
163
|
-
"data-testid": "go-to-cart-button",
|
|
164
|
-
children: "Go to cart"
|
|
165
|
-
})
|
|
166
|
-
})]
|
|
167
|
-
})] }) : /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("div", {
|
|
168
|
-
className: "flex flex-col items-center justify-center gap-y-4 py-16",
|
|
169
|
-
children: [
|
|
170
|
-
/* @__PURE__ */ jsx("div", {
|
|
171
|
-
className: "text-small-regular flex h-6 w-6 items-center justify-center rounded-full bg-gray-900 text-white",
|
|
172
|
-
children: /* @__PURE__ */ jsx("span", { children: "0" })
|
|
173
|
-
}),
|
|
174
|
-
/* @__PURE__ */ jsx("span", { children: "Your shopping bag is empty." }),
|
|
175
|
-
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
176
|
-
href: "/store",
|
|
177
|
-
children: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
178
|
-
className: "sr-only",
|
|
179
|
-
children: "Go to all products page"
|
|
180
|
-
}), /* @__PURE__ */ jsx(Button, {
|
|
181
|
-
onClick: close,
|
|
182
|
-
children: "Explore products"
|
|
183
|
-
})] })
|
|
184
|
-
}) })
|
|
185
|
-
]
|
|
186
|
-
}) })]
|
|
187
|
-
})
|
|
188
|
-
})]
|
|
189
|
-
})
|
|
190
|
-
});
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
//#endregion
|
|
194
|
-
export { CartDropdown as t };
|
|
195
|
-
//# sourceMappingURL=cart-dropdown-D_PUJarp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cart-dropdown-D_PUJarp.js","names":[],"sources":["../src/components/cart-dropdown/index.tsx"],"sourcesContent":["'use client';\n\nimport { Fragment, useEffect, useRef, useState } from 'react';\n\nimport { usePathname } from 'next/navigation';\n\nimport {\n Popover,\n PopoverButton,\n PopoverPanel,\n Transition,\n} from '@headlessui/react';\nimport { Button } from '@medusajs/ui';\n\nimport { convertToLocale } from '@/lib/utils/money';\nimport { Cart } from '@/types/graphql';\n\nimport { DeleteButton } from '../delete-button';\nimport { LineItemOptions } from '../line-item-options';\nimport { LineItemPrice } from '../line-item-price';\nimport { LocalizedClientLink } from '../localized-client-link';\nimport { Thumbnail } from '../thumbnail';\n\nconst CartDropdown = ({ cart: cartState }: { cart?: Cart | null }) => {\n const [activeTimer, setActiveTimer] = useState<NodeJS.Timeout | undefined>(\n undefined\n );\n const [cartDropdownOpen, setCartDropdownOpen] = useState(false);\n\n const open = () => setCartDropdownOpen(true);\n const close = () => setCartDropdownOpen(false);\n\n const totalItems =\n cartState?.items?.reduce((acc, item) => {\n return acc + item.quantity;\n }, 0) || 0;\n\n const subtotal = cartState?.subtotal ?? 0;\n const itemRef = useRef<number>(totalItems || 0);\n\n const timedOpen = () => {\n open();\n\n const timer = setTimeout(close, 5000);\n\n setActiveTimer(timer);\n };\n\n const openAndCancel = () => {\n if (activeTimer) {\n clearTimeout(activeTimer);\n }\n\n open();\n };\n\n // Clean up the timer when the component unmounts\n useEffect(() => {\n return () => {\n if (activeTimer) {\n clearTimeout(activeTimer);\n }\n };\n }, [activeTimer]);\n\n const pathname = usePathname();\n\n // open cart dropdown when modifying the cart items, but only if we're not on the cart page\n useEffect(() => {\n if (itemRef.current !== totalItems && !pathname.includes('/cart')) {\n timedOpen();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [totalItems, itemRef.current]);\n\n return (\n <div\n className=\"z-50 h-full\"\n onMouseEnter={openAndCancel}\n onMouseLeave={close}\n >\n <Popover className=\"relative h-full\">\n <PopoverButton className=\"h-full\">\n <LocalizedClientLink\n className=\"hover:text-ui-fg-base\"\n href=\"/cart\"\n data-testid=\"nav-cart-link\"\n >{`Cart (${totalItems})`}</LocalizedClientLink>\n </PopoverButton>\n <Transition\n show={cartDropdownOpen}\n as={Fragment}\n enter=\"transition ease-out duration-200\"\n enterFrom=\"opacity-0 translate-y-1\"\n enterTo=\"opacity-100 translate-y-0\"\n leave=\"transition ease-in duration-150\"\n leaveFrom=\"opacity-100 translate-y-0\"\n leaveTo=\"opacity-0 translate-y-1\"\n >\n <PopoverPanel\n static\n className=\"text-ui-fg-base small:block absolute top-[calc(100%+1px)] right-0 hidden w-[420px] border-x border-b border-gray-200 bg-white\"\n data-testid=\"nav-cart-dropdown\"\n >\n <div className=\"flex items-center justify-center p-4\">\n <h3 className=\"text-large-semi\">Cart</h3>\n </div>\n {cartState && cartState.items?.length ? (\n <>\n <div className=\"no-scrollbar grid max-h-[402px] grid-cols-1 gap-y-8 overflow-y-scroll p-px px-4\">\n {cartState.items\n .sort((a, b) => {\n return (a.createdAt ?? '') > (b.createdAt ?? '') ? -1 : 1;\n })\n .map((item) => (\n <div\n className=\"grid grid-cols-[122px_1fr] gap-x-4\"\n key={item.id}\n data-testid=\"cart-item\"\n >\n <LocalizedClientLink\n href={`/products/${item.productHandle}`}\n className=\"w-24\"\n >\n <Thumbnail\n thumbnail={item.thumbnail}\n images={item.variant?.product?.images}\n size=\"square\"\n />\n </LocalizedClientLink>\n <div className=\"flex flex-1 flex-col justify-between\">\n <div className=\"flex flex-1 flex-col\">\n <div className=\"flex items-start justify-between\">\n <div className=\"mr-4 flex w-[180px] flex-col overflow-ellipsis whitespace-nowrap\">\n <h3 className=\"text-base-regular overflow-hidden text-ellipsis\">\n <LocalizedClientLink\n href={`/products/${item.productHandle}`}\n data-testid=\"product-link\"\n >\n {item.title}\n </LocalizedClientLink>\n </h3>\n <LineItemOptions\n variant={item.variant}\n data-testid=\"cart-item-variant\"\n data-value={item.variant}\n />\n <span\n data-testid=\"cart-item-quantity\"\n data-value={item.quantity}\n >\n Quantity: {item.quantity}\n </span>\n </div>\n <div className=\"flex justify-end\">\n <LineItemPrice\n item={item}\n style=\"tight\"\n currencyCode={cartState.currencyCode}\n />\n </div>\n </div>\n </div>\n <DeleteButton\n id={item.id}\n className=\"mt-1\"\n data-testid=\"cart-item-remove-button\"\n >\n Remove\n </DeleteButton>\n </div>\n </div>\n ))}\n </div>\n <div className=\"text-small-regular flex flex-col gap-y-4 p-4\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-ui-fg-base font-semibold\">\n Subtotal{' '}\n <span className=\"font-normal\">(excl. taxes)</span>\n </span>\n <span\n className=\"text-large-semi\"\n data-testid=\"cart-subtotal\"\n data-value={subtotal}\n >\n {convertToLocale({\n amount: subtotal,\n currency_code: cartState.currencyCode,\n })}\n </span>\n </div>\n <LocalizedClientLink href=\"/cart\" passHref>\n <Button\n className=\"w-full\"\n size=\"large\"\n data-testid=\"go-to-cart-button\"\n >\n Go to cart\n </Button>\n </LocalizedClientLink>\n </div>\n </>\n ) : (\n <div>\n <div className=\"flex flex-col items-center justify-center gap-y-4 py-16\">\n <div className=\"text-small-regular flex h-6 w-6 items-center justify-center rounded-full bg-gray-900 text-white\">\n <span>0</span>\n </div>\n <span>Your shopping bag is empty.</span>\n <div>\n <LocalizedClientLink href=\"/store\">\n <>\n <span className=\"sr-only\">Go to all products page</span>\n <Button onClick={close}>Explore products</Button>\n </>\n </LocalizedClientLink>\n </div>\n </div>\n </div>\n )}\n </PopoverPanel>\n </Transition>\n </Popover>\n </div>\n );\n};\n\nexport { CartDropdown };\n"],"mappings":";;;;;;;;;;;;;AAuBA,MAAM,gBAAgB,EAAE,MAAM,gBAAwC;CACpE,MAAM,CAAC,aAAa,kBAAkB,SACpC,OACD;CACD,MAAM,CAAC,kBAAkB,uBAAuB,SAAS,MAAM;CAE/D,MAAM,aAAa,oBAAoB,KAAK;CAC5C,MAAM,cAAc,oBAAoB,MAAM;CAE9C,MAAM,aACJ,WAAW,OAAO,QAAQ,KAAK,SAAS;AACtC,SAAO,MAAM,KAAK;IACjB,EAAE,IAAI;CAEX,MAAM,WAAW,WAAW,YAAY;CACxC,MAAM,UAAU,OAAe,cAAc,EAAE;CAE/C,MAAM,kBAAkB;AACtB,QAAM;AAIN,iBAFc,WAAW,OAAO,IAAK,CAEhB;;CAGvB,MAAM,sBAAsB;AAC1B,MAAI,YACF,cAAa,YAAY;AAG3B,QAAM;;AAIR,iBAAgB;AACd,eAAa;AACX,OAAI,YACF,cAAa,YAAY;;IAG5B,CAAC,YAAY,CAAC;CAEjB,MAAM,WAAW,aAAa;AAG9B,iBAAgB;AACd,MAAI,QAAQ,YAAY,cAAc,CAAC,SAAS,SAAS,QAAQ,CAC/D,YAAW;IAGZ,CAAC,YAAY,QAAQ,QAAQ,CAAC;AAEjC,QACE,oBAAC;EACC,WAAU;EACV,cAAc;EACd,cAAc;YAEd,qBAAC;GAAQ,WAAU;cACjB,oBAAC;IAAc,WAAU;cACvB,oBAAC;KACC,WAAU;KACV,MAAK;KACL,eAAY;eACZ,SAAS,WAAW;MAAyB;KACjC,EAChB,oBAAC;IACC,MAAM;IACN,IAAI;IACJ,OAAM;IACN,WAAU;IACV,SAAQ;IACR,OAAM;IACN,WAAU;IACV,SAAQ;cAER,qBAAC;KACC;KACA,WAAU;KACV,eAAY;gBAEZ,oBAAC;MAAI,WAAU;gBACb,oBAAC;OAAG,WAAU;iBAAkB;QAAS;OACrC,EACL,aAAa,UAAU,OAAO,SAC7B,8CACE,oBAAC;MAAI,WAAU;gBACZ,UAAU,MACR,MAAM,GAAG,MAAM;AACd,eAAQ,EAAE,aAAa,OAAO,EAAE,aAAa,MAAM,KAAK;QACxD,CACD,KAAK,SACJ,qBAAC;OACC,WAAU;OAEV,eAAY;kBAEZ,oBAAC;QACC,MAAM,aAAa,KAAK;QACxB,WAAU;kBAEV,oBAAC;SACC,WAAW,KAAK;SAChB,QAAQ,KAAK,SAAS,SAAS;SAC/B,MAAK;UACL;SACkB,EACtB,qBAAC;QAAI,WAAU;mBACb,oBAAC;SAAI,WAAU;mBACb,qBAAC;UAAI,WAAU;qBACb,qBAAC;WAAI,WAAU;;YACb,oBAAC;aAAG,WAAU;uBACZ,oBAAC;cACC,MAAM,aAAa,KAAK;cACxB,eAAY;wBAEX,KAAK;eACc;cACnB;YACL,oBAAC;aACC,SAAS,KAAK;aACd,eAAY;aACZ,cAAY,KAAK;cACjB;YACF,qBAAC;aACC,eAAY;aACZ,cAAY,KAAK;wBAClB,cACY,KAAK;cACX;;YACH,EACN,oBAAC;WAAI,WAAU;qBACb,oBAAC;YACO;YACN,OAAM;YACN,cAAc,UAAU;aACxB;YACE;WACF;UACF,EACN,oBAAC;SACC,IAAI,KAAK;SACT,WAAU;SACV,eAAY;mBACb;UAEc;SACX;SArDD,KAAK,GAsDN,CACN;OACA,EACN,qBAAC;MAAI,WAAU;iBACb,qBAAC;OAAI,WAAU;kBACb,qBAAC;QAAK,WAAU;;SAAgC;SACrC;SACT,oBAAC;UAAK,WAAU;oBAAc;WAAoB;;SAC7C,EACP,oBAAC;QACC,WAAU;QACV,eAAY;QACZ,cAAY;kBAEX,gBAAgB;SACf,QAAQ;SACR,eAAe,UAAU;SAC1B,CAAC;SACG;QACH,EACN,oBAAC;OAAoB,MAAK;OAAQ;iBAChC,oBAAC;QACC,WAAU;QACV,MAAK;QACL,eAAY;kBACb;SAEQ;QACW;OAClB,IACL,GAEH,oBAAC,mBACC,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAI,WAAU;kBACb,oBAAC,oBAAK,MAAQ;SACV;OACN,oBAAC,oBAAK,gCAAkC;OACxC,oBAAC,mBACC,oBAAC;QAAoB,MAAK;kBACxB,8CACE,oBAAC;SAAK,WAAU;mBAAU;UAA8B,EACxD,oBAAC;SAAO,SAAS;mBAAO;UAAyB,IAChD;SACiB,GAClB;;OACF,GACF;MAEK;KACJ;IACL;GACN"}
|
package/dist/cart-xkcyWLfU.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { t as sdk } from "./medusa-TumrpCF2.js";
|
|
2
|
-
import { i as graphqlMutation, r as graphqlFetch } from "./apollo-client-Bw50r80c.js";
|
|
3
|
-
import { r as UPDATE_CART_MUTATION, t as DELETE_LINE_ITEM_MUTATION } from "./cart-IHaLnQC4.js";
|
|
4
|
-
import { t as GET_CART_QUERY } from "./cart-DH8urwwT.js";
|
|
5
|
-
import { t as medusaError } from "./medusa-error-DDhA6RGC.js";
|
|
6
|
-
import { i as getCartId, n as getCacheOptions, r as getCacheTag, t as getAuthHeaders } from "./cookies-lksVIe4_.js";
|
|
7
|
-
import { t as getRegion } from "./regions-r1AvxfT8.js";
|
|
8
|
-
import { redirect } from "next/navigation";
|
|
9
|
-
import { revalidateTag } from "next/cache";
|
|
10
|
-
|
|
11
|
-
//#region src/lib/data/cart.ts
|
|
12
|
-
/**
|
|
13
|
-
* Retrieves a cart by its ID. If no ID is provided, it will use the cart ID from the cookies.
|
|
14
|
-
* @param cartId - optional - The ID of the cart to retrieve.
|
|
15
|
-
* @returns The cart object if found, or null if not found.
|
|
16
|
-
*/
|
|
17
|
-
const retrieveCart = async (cartId) => {
|
|
18
|
-
const id = cartId || await getCartId();
|
|
19
|
-
if (!id) return null;
|
|
20
|
-
try {
|
|
21
|
-
return (await graphqlFetch({
|
|
22
|
-
query: GET_CART_QUERY,
|
|
23
|
-
variables: { id }
|
|
24
|
-
}))?.cart ?? null;
|
|
25
|
-
} catch (error) {
|
|
26
|
-
console.error("Failed to fetch cart:", error);
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
const updateCart = async (data) => {
|
|
31
|
-
const cartId = await getCartId();
|
|
32
|
-
if (!cartId) throw new Error("No existing cart found, please create one before updating");
|
|
33
|
-
try {
|
|
34
|
-
const cart = (await graphqlMutation({
|
|
35
|
-
mutation: UPDATE_CART_MUTATION,
|
|
36
|
-
variables: {
|
|
37
|
-
id: cartId,
|
|
38
|
-
data
|
|
39
|
-
}
|
|
40
|
-
}))?.updateCart ?? null;
|
|
41
|
-
if (cart) {
|
|
42
|
-
revalidateTag(await getCacheTag("carts"));
|
|
43
|
-
revalidateTag(await getCacheTag("fulfillment"));
|
|
44
|
-
}
|
|
45
|
-
return cart;
|
|
46
|
-
} catch (err) {
|
|
47
|
-
medusaError(err);
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
const deleteLineItem = async (lineId) => {
|
|
51
|
-
if (!lineId) throw new Error("Missing lineItem ID when deleting line item");
|
|
52
|
-
const cartId = await getCartId();
|
|
53
|
-
if (!cartId) throw new Error("Missing cart ID when deleting line item");
|
|
54
|
-
try {
|
|
55
|
-
const deletedLineItem = (await graphqlMutation({
|
|
56
|
-
mutation: DELETE_LINE_ITEM_MUTATION,
|
|
57
|
-
variables: {
|
|
58
|
-
cartId,
|
|
59
|
-
lineItemId: lineId
|
|
60
|
-
}
|
|
61
|
-
}))?.deleteLineItem ?? null;
|
|
62
|
-
if (deletedLineItem) {
|
|
63
|
-
revalidateTag(await getCacheTag("carts"));
|
|
64
|
-
revalidateTag(await getCacheTag("fulfillment"));
|
|
65
|
-
}
|
|
66
|
-
return deletedLineItem;
|
|
67
|
-
} catch (error) {
|
|
68
|
-
console.error("GraphQL deleteLineItem error:", error.message);
|
|
69
|
-
throw error;
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Updates the countrycode param and revalidates the regions cache
|
|
74
|
-
* @param regionId
|
|
75
|
-
* @param countryCode
|
|
76
|
-
*/
|
|
77
|
-
async function updateRegion(countryCode, currentPath) {
|
|
78
|
-
const cartId = await getCartId();
|
|
79
|
-
const region = await getRegion(countryCode);
|
|
80
|
-
if (!region) throw new Error(`Region not found for country code: ${countryCode}`);
|
|
81
|
-
if (cartId) {
|
|
82
|
-
await updateCart({ regionId: region.id });
|
|
83
|
-
revalidateTag(await getCacheTag("carts"));
|
|
84
|
-
}
|
|
85
|
-
revalidateTag(await getCacheTag("regions"));
|
|
86
|
-
revalidateTag(await getCacheTag("products"));
|
|
87
|
-
redirect(`/${countryCode}${currentPath}`);
|
|
88
|
-
}
|
|
89
|
-
async function listCartOptions() {
|
|
90
|
-
const cartId = await getCartId();
|
|
91
|
-
const headers = { ...await getAuthHeaders() };
|
|
92
|
-
const next = { ...await getCacheOptions("shippingOptions") };
|
|
93
|
-
return await sdk.client.fetch("/store/shipping-options", {
|
|
94
|
-
query: { cart_id: cartId },
|
|
95
|
-
next,
|
|
96
|
-
headers,
|
|
97
|
-
cache: "force-cache"
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
//#endregion
|
|
102
|
-
export { updateRegion as i, listCartOptions as n, retrieveCart as r, deleteLineItem as t };
|
|
103
|
-
//# sourceMappingURL=cart-xkcyWLfU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cart-xkcyWLfU.js","names":["error: any"],"sources":["../src/lib/data/cart.ts"],"sourcesContent":["'use server';\n\nimport { revalidateTag } from 'next/cache';\nimport { redirect } from 'next/navigation';\n\nimport { HttpTypes } from '@medusajs/types';\n\nimport { sdk } from '@/lib/config/medusa';\nimport { graphqlFetch, graphqlMutation } from '@/lib/gql/apollo-client';\nimport {\n DELETE_LINE_ITEM_MUTATION,\n UPDATE_CART_MUTATION,\n} from '@/lib/gql/mutations/cart';\nimport { GET_CART_QUERY } from '@/lib/gql/queries/cart';\nimport { medusaError } from '@/lib/utils/medusa-error';\nimport {\n Cart,\n DeleteLineItemMutation,\n DeleteLineItemMutationVariables,\n GetCartQuery,\n GetCartQueryVariables,\n UpdateCartMutation,\n UpdateCartMutationVariables,\n} from '@/types/graphql';\n\nimport {\n getAuthHeaders,\n getCacheOptions,\n getCacheTag,\n getCartId,\n} from './cookies';\nimport { getRegion } from './regions';\n\n/**\n * Retrieves a cart by its ID. If no ID is provided, it will use the cart ID from the cookies.\n * @param cartId - optional - The ID of the cart to retrieve.\n * @returns The cart object if found, or null if not found.\n */\nexport const retrieveCart = async (cartId?: string): Promise<Cart | null> => {\n const id = cartId || (await getCartId());\n if (!id) {\n return null;\n }\n\n try {\n const data = await graphqlFetch<GetCartQuery, GetCartQueryVariables>({\n query: GET_CART_QUERY,\n variables: { id },\n });\n\n return data?.cart ?? null;\n } catch (error) {\n console.error('Failed to fetch cart:', error);\n return null;\n }\n};\n\nconst updateCart = async (\n data: UpdateCartMutationVariables['data']\n): Promise<UpdateCartMutation['updateCart'] | null> => {\n const cartId = await getCartId();\n\n if (!cartId) {\n throw new Error(\n 'No existing cart found, please create one before updating'\n );\n }\n\n try {\n const result = await graphqlMutation<\n UpdateCartMutation,\n UpdateCartMutationVariables\n >({\n mutation: UPDATE_CART_MUTATION,\n variables: {\n id: cartId,\n data,\n },\n });\n\n const cart = result?.updateCart ?? null;\n\n if (cart) {\n const cartCacheTag = await getCacheTag('carts');\n revalidateTag(cartCacheTag);\n\n const fulfillmentCacheTag = await getCacheTag('fulfillment');\n revalidateTag(fulfillmentCacheTag);\n }\n\n return cart;\n } catch (err) {\n medusaError(err);\n }\n};\n\nexport const deleteLineItem = async (\n lineId: string\n): Promise<DeleteLineItemMutation['deleteLineItem'] | null> => {\n if (!lineId) {\n throw new Error('Missing lineItem ID when deleting line item');\n }\n\n const cartId = await getCartId();\n\n if (!cartId) {\n throw new Error('Missing cart ID when deleting line item');\n }\n\n try {\n const result = await graphqlMutation<\n DeleteLineItemMutation,\n DeleteLineItemMutationVariables\n >({\n mutation: DELETE_LINE_ITEM_MUTATION,\n variables: {\n cartId,\n lineItemId: lineId,\n },\n });\n\n const deletedLineItem = result?.deleteLineItem ?? null;\n\n if (deletedLineItem) {\n const cartCacheTag = await getCacheTag('carts');\n revalidateTag(cartCacheTag);\n\n const fulfillmentCacheTag = await getCacheTag('fulfillment');\n revalidateTag(fulfillmentCacheTag);\n }\n\n return deletedLineItem;\n } catch (error: any) {\n console.error('GraphQL deleteLineItem error:', error.message);\n throw error;\n }\n};\n\n/**\n * Updates the countrycode param and revalidates the regions cache\n * @param regionId\n * @param countryCode\n */\nexport async function updateRegion(countryCode: string, currentPath: string) {\n const cartId = await getCartId();\n const region = await getRegion(countryCode);\n\n if (!region) {\n throw new Error(`Region not found for country code: ${countryCode}`);\n }\n\n if (cartId) {\n await updateCart({ regionId: region.id });\n const cartCacheTag = await getCacheTag('carts');\n revalidateTag(cartCacheTag);\n }\n\n const regionCacheTag = await getCacheTag('regions');\n revalidateTag(regionCacheTag);\n\n const productsCacheTag = await getCacheTag('products');\n revalidateTag(productsCacheTag);\n\n redirect(`/${countryCode}${currentPath}`);\n}\n\nexport async function listCartOptions() {\n const cartId = await getCartId();\n const headers = {\n ...(await getAuthHeaders()),\n };\n const next = {\n ...(await getCacheOptions('shippingOptions')),\n };\n\n return await sdk.client.fetch<{\n shipping_options: HttpTypes.StoreCartShippingOption[];\n }>('/store/shipping-options', {\n query: { cart_id: cartId },\n next,\n headers,\n cache: 'force-cache',\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAsCA,MAAa,eAAe,OAAO,WAA0C;CAC3E,MAAM,KAAK,UAAW,MAAM,WAAW;AACvC,KAAI,CAAC,GACH,QAAO;AAGT,KAAI;AAMF,UALa,MAAM,aAAkD;GACnE,OAAO;GACP,WAAW,EAAE,IAAI;GAClB,CAAC,GAEW,QAAQ;UACd,OAAO;AACd,UAAQ,MAAM,yBAAyB,MAAM;AAC7C,SAAO;;;AAIX,MAAM,aAAa,OACjB,SACqD;CACrD,MAAM,SAAS,MAAM,WAAW;AAEhC,KAAI,CAAC,OACH,OAAM,IAAI,MACR,4DACD;AAGH,KAAI;EAYF,MAAM,QAXS,MAAM,gBAGnB;GACA,UAAU;GACV,WAAW;IACT,IAAI;IACJ;IACD;GACF,CAAC,GAEmB,cAAc;AAEnC,MAAI,MAAM;AAER,iBADqB,MAAM,YAAY,QAAQ,CACpB;AAG3B,iBAD4B,MAAM,YAAY,cAAc,CAC1B;;AAGpC,SAAO;UACA,KAAK;AACZ,cAAY,IAAI;;;AAIpB,MAAa,iBAAiB,OAC5B,WAC6D;AAC7D,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,8CAA8C;CAGhE,MAAM,SAAS,MAAM,WAAW;AAEhC,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,0CAA0C;AAG5D,KAAI;EAYF,MAAM,mBAXS,MAAM,gBAGnB;GACA,UAAU;GACV,WAAW;IACT;IACA,YAAY;IACb;GACF,CAAC,GAE8B,kBAAkB;AAElD,MAAI,iBAAiB;AAEnB,iBADqB,MAAM,YAAY,QAAQ,CACpB;AAG3B,iBAD4B,MAAM,YAAY,cAAc,CAC1B;;AAGpC,SAAO;UACAA,OAAY;AACnB,UAAQ,MAAM,iCAAiC,MAAM,QAAQ;AAC7D,QAAM;;;;;;;;AASV,eAAsB,aAAa,aAAqB,aAAqB;CAC3E,MAAM,SAAS,MAAM,WAAW;CAChC,MAAM,SAAS,MAAM,UAAU,YAAY;AAE3C,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,sCAAsC,cAAc;AAGtE,KAAI,QAAQ;AACV,QAAM,WAAW,EAAE,UAAU,OAAO,IAAI,CAAC;AAEzC,gBADqB,MAAM,YAAY,QAAQ,CACpB;;AAI7B,eADuB,MAAM,YAAY,UAAU,CACtB;AAG7B,eADyB,MAAM,YAAY,WAAW,CACvB;AAE/B,UAAS,IAAI,cAAc,cAAc;;AAG3C,eAAsB,kBAAkB;CACtC,MAAM,SAAS,MAAM,WAAW;CAChC,MAAM,UAAU,EACd,GAAI,MAAM,gBAAgB,EAC3B;CACD,MAAM,OAAO,EACX,GAAI,MAAM,gBAAgB,kBAAkB,EAC7C;AAED,QAAO,MAAM,IAAI,OAAO,MAErB,2BAA2B;EAC5B,OAAO,EAAE,SAAS,QAAQ;EAC1B;EACA;EACA,OAAO;EACR,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { r as graphqlFetch } from "./apollo-client-Bw50r80c.js";
|
|
2
|
-
import { t as GET_PRODUCT_CATEGORIES_QUERY } from "./product-C3HQUIgX.js";
|
|
3
|
-
|
|
4
|
-
//#region src/lib/data/categories.ts
|
|
5
|
-
const listCategories = async () => {
|
|
6
|
-
try {
|
|
7
|
-
return (await graphqlFetch({ query: GET_PRODUCT_CATEGORIES_QUERY }))?.productCategories || [];
|
|
8
|
-
} catch (error) {
|
|
9
|
-
console.error("Error fetching categories from BFF:", error);
|
|
10
|
-
return [];
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
export { listCategories as t };
|
|
16
|
-
//# sourceMappingURL=categories-B-RYCIZ3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"categories-B-RYCIZ3.js","names":[],"sources":["../src/lib/data/categories.ts"],"sourcesContent":["import { graphqlFetch } from '@/lib/gql/apollo-client';\nimport { GET_PRODUCT_CATEGORIES_QUERY } from '@/lib/gql/queries/product';\nimport {\n GetProductCategoriesQuery,\n GetProductCategoriesQueryVariables,\n} from '@/types/graphql';\n\nexport const listCategories = async () => {\n try {\n const data = await graphqlFetch<\n GetProductCategoriesQuery,\n GetProductCategoriesQueryVariables\n >({\n query: GET_PRODUCT_CATEGORIES_QUERY,\n });\n\n return data?.productCategories || [];\n } catch (error) {\n console.error('Error fetching categories from BFF:', error);\n return [];\n }\n};\n"],"mappings":";;;;AAOA,MAAa,iBAAiB,YAAY;AACxC,KAAI;AAQF,UAPa,MAAM,aAGjB,EACA,OAAO,8BACR,CAAC,GAEW,qBAAqB,EAAE;UAC7B,OAAO;AACd,UAAQ,MAAM,uCAAuC,MAAM;AAC3D,SAAO,EAAE"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { r as graphqlFetch } from "./apollo-client-Bw50r80c.js";
|
|
2
|
-
import { t as GET_COLLECTIONS_QUERY } from "./collections-DMv3UYgC.js";
|
|
3
|
-
|
|
4
|
-
//#region src/lib/data/collections.ts
|
|
5
|
-
const listCollections = async (queryParams = {}) => {
|
|
6
|
-
try {
|
|
7
|
-
return { collections: (await graphqlFetch({
|
|
8
|
-
query: GET_COLLECTIONS_QUERY,
|
|
9
|
-
variables: {
|
|
10
|
-
limit: parseInt(queryParams.limit || "100"),
|
|
11
|
-
offset: parseInt(queryParams.offset || "0")
|
|
12
|
-
}
|
|
13
|
-
}))?.collections };
|
|
14
|
-
} catch (error) {
|
|
15
|
-
console.error("Error fetching collections from BFF:", error);
|
|
16
|
-
return { collections: [] };
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
//#endregion
|
|
21
|
-
export { listCollections as t };
|
|
22
|
-
//# sourceMappingURL=collections-BgyvhW2p.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collections-BgyvhW2p.js","names":[],"sources":["../src/lib/data/collections.ts"],"sourcesContent":["'use server';\n\nimport { graphqlFetch } from '@/lib/gql/apollo-client';\nimport { GET_COLLECTIONS_QUERY } from '@/lib/gql/queries/collections';\nimport {\n GetCollectionsQuery,\n GetCollectionsQueryVariables,\n} from '@/types/graphql';\n\nexport const listCollections = async (\n queryParams: Record<string, string> = {}\n) => {\n try {\n const limit = parseInt(queryParams.limit || '100');\n const offset = parseInt(queryParams.offset || '0');\n\n const data = await graphqlFetch<\n GetCollectionsQuery,\n GetCollectionsQueryVariables\n >({\n query: GET_COLLECTIONS_QUERY,\n variables: { limit, offset },\n });\n\n return {\n collections: data?.collections,\n };\n } catch (error) {\n console.error('Error fetching collections from BFF:', error);\n return { collections: [] };\n }\n};\n"],"mappings":";;;;AASA,MAAa,kBAAkB,OAC7B,cAAsC,EAAE,KACrC;AACH,KAAI;AAYF,SAAO,EACL,cATW,MAAM,aAGjB;GACA,OAAO;GACP,WAAW;IAAE,OARD,SAAS,YAAY,SAAS,MAAM;IAQ5B,QAPP,SAAS,YAAY,UAAU,IAAI;IAOpB;GAC7B,CAAC,GAGmB,aACpB;UACM,OAAO;AACd,UAAQ,MAAM,wCAAwC,MAAM;AAC5D,SAAO,EAAE,aAAa,EAAE,EAAE"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { i as PRODUCT_COLLECTION_FRAGMENT, t as COLLECTION_PRODUCTS_FRAGMENT } from "./product-COu5D1mS.js";
|
|
2
|
-
import { gql } from "@apollo/client";
|
|
3
|
-
|
|
4
|
-
//#region src/lib/gql/queries/collections.ts
|
|
5
|
-
const GET_COLLECTIONS_QUERY = gql`
|
|
6
|
-
query GetCollections($limit: Int, $offset: Int) {
|
|
7
|
-
collections(limit: $limit, offset: $offset) {
|
|
8
|
-
...ProductCollection
|
|
9
|
-
products {
|
|
10
|
-
...CollectionProducts
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
${PRODUCT_COLLECTION_FRAGMENT}
|
|
15
|
-
${COLLECTION_PRODUCTS_FRAGMENT}
|
|
16
|
-
`;
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { GET_COLLECTIONS_QUERY as t };
|
|
20
|
-
//# sourceMappingURL=collections-DMv3UYgC.js.map
|
package/dist/cookies-lksVIe4_.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { cookies } from "next/headers";
|
|
2
|
-
import "server-only";
|
|
3
|
-
|
|
4
|
-
//#region src/lib/data/cookies.ts
|
|
5
|
-
const getAuthHeaders = async () => {
|
|
6
|
-
try {
|
|
7
|
-
const token = (await cookies()).get("_medusa_jwt")?.value;
|
|
8
|
-
if (!token) return {};
|
|
9
|
-
return { authorization: `Bearer ${token}` };
|
|
10
|
-
} catch {
|
|
11
|
-
return {};
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
const getCacheTag = async (tag) => {
|
|
15
|
-
try {
|
|
16
|
-
const cacheId = (await cookies()).get("_medusa_cache_id")?.value;
|
|
17
|
-
if (!cacheId) return "";
|
|
18
|
-
return `${tag}-${cacheId}`;
|
|
19
|
-
} catch (error) {
|
|
20
|
-
return "";
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
const getCacheOptions = async (tag) => {
|
|
24
|
-
if (typeof window !== "undefined") return {};
|
|
25
|
-
const cacheTag = await getCacheTag(tag);
|
|
26
|
-
if (!cacheTag) return {};
|
|
27
|
-
return { tags: [`${cacheTag}`] };
|
|
28
|
-
};
|
|
29
|
-
const getCartId = async () => {
|
|
30
|
-
return (await cookies()).get("_medusa_cart_id")?.value;
|
|
31
|
-
};
|
|
32
|
-
const removeCartId = async () => {
|
|
33
|
-
(await cookies()).set("_medusa_cart_id", "", { maxAge: -1 });
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
//#endregion
|
|
37
|
-
export { removeCartId as a, getCartId as i, getCacheOptions as n, getCacheTag as r, getAuthHeaders as t };
|
|
38
|
-
//# sourceMappingURL=cookies-lksVIe4_.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cookies-lksVIe4_.js","names":["nextCookies"],"sources":["../src/lib/data/cookies.ts"],"sourcesContent":["import { cookies as nextCookies } from 'next/headers';\n\nimport 'server-only';\n\nexport const getAuthHeaders = async (): Promise<\n { authorization: string } | {}\n> => {\n try {\n const cookies = await nextCookies();\n const token = cookies.get('_medusa_jwt')?.value;\n\n if (!token) {\n return {};\n }\n\n return { authorization: `Bearer ${token}` };\n } catch {\n return {};\n }\n};\n\nexport const getCacheTag = async (tag: string): Promise<string> => {\n try {\n const cookies = await nextCookies();\n const cacheId = cookies.get('_medusa_cache_id')?.value;\n\n if (!cacheId) {\n return '';\n }\n\n return `${tag}-${cacheId}`;\n } catch (error) {\n return '';\n }\n};\n\nexport const getCacheOptions = async (\n tag: string\n): Promise<{ tags: string[] } | {}> => {\n if (typeof window !== 'undefined') {\n return {};\n }\n\n const cacheTag = await getCacheTag(tag);\n\n if (!cacheTag) {\n return {};\n }\n\n return { tags: [`${cacheTag}`] };\n};\n\nexport const getCartId = async () => {\n const cookies = await nextCookies();\n return cookies.get('_medusa_cart_id')?.value;\n};\n\nexport const removeCartId = async () => {\n const cookies = await nextCookies();\n cookies.set('_medusa_cart_id', '', {\n maxAge: -1,\n });\n};\n"],"mappings":";;;;AAIA,MAAa,iBAAiB,YAEzB;AACH,KAAI;EAEF,MAAM,SADU,MAAMA,SAAa,EACb,IAAI,cAAc,EAAE;AAE1C,MAAI,CAAC,MACH,QAAO,EAAE;AAGX,SAAO,EAAE,eAAe,UAAU,SAAS;SACrC;AACN,SAAO,EAAE;;;AAIb,MAAa,cAAc,OAAO,QAAiC;AACjE,KAAI;EAEF,MAAM,WADU,MAAMA,SAAa,EACX,IAAI,mBAAmB,EAAE;AAEjD,MAAI,CAAC,QACH,QAAO;AAGT,SAAO,GAAG,IAAI,GAAG;UACV,OAAO;AACd,SAAO;;;AAIX,MAAa,kBAAkB,OAC7B,QACqC;AACrC,KAAI,OAAO,WAAW,YACpB,QAAO,EAAE;CAGX,MAAM,WAAW,MAAM,YAAY,IAAI;AAEvC,KAAI,CAAC,SACH,QAAO,EAAE;AAGX,QAAO,EAAE,MAAM,CAAC,GAAG,WAAW,EAAE;;AAGlC,MAAa,YAAY,YAAY;AAEnC,SADgB,MAAMA,SAAa,EACpB,IAAI,kBAAkB,EAAE;;AAGzC,MAAa,eAAe,YAAY;AAEtC,EADgB,MAAMA,SAAa,EAC3B,IAAI,mBAAmB,IAAI,EACjC,QAAQ,IACT,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { gql } from "@apollo/client";
|
|
2
|
-
|
|
3
|
-
//#region src/lib/gql/fragments/customer.ts
|
|
4
|
-
const CUSTOMER_ADDRESS_FRAGMENT = gql`
|
|
5
|
-
fragment CustomerAddress on CustomerAddress {
|
|
6
|
-
id
|
|
7
|
-
addressName
|
|
8
|
-
isDefaultShipping
|
|
9
|
-
isDefaultBilling
|
|
10
|
-
customerId
|
|
11
|
-
company
|
|
12
|
-
firstName
|
|
13
|
-
lastName
|
|
14
|
-
address1
|
|
15
|
-
address2
|
|
16
|
-
city
|
|
17
|
-
countryCode
|
|
18
|
-
province
|
|
19
|
-
postalCode
|
|
20
|
-
phone
|
|
21
|
-
}
|
|
22
|
-
`;
|
|
23
|
-
const CUSTOMER_FRAGMENT = gql`
|
|
24
|
-
fragment Customer on Customer {
|
|
25
|
-
id
|
|
26
|
-
email
|
|
27
|
-
defaultBillingAddressId
|
|
28
|
-
defaultShippingAddressId
|
|
29
|
-
companyName
|
|
30
|
-
firstName
|
|
31
|
-
lastName
|
|
32
|
-
phone
|
|
33
|
-
addresses {
|
|
34
|
-
...CustomerAddress
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
${CUSTOMER_ADDRESS_FRAGMENT}
|
|
38
|
-
`;
|
|
39
|
-
|
|
40
|
-
//#endregion
|
|
41
|
-
export { CUSTOMER_FRAGMENT as n, CUSTOMER_ADDRESS_FRAGMENT as t };
|
|
42
|
-
//# sourceMappingURL=customer-CgN4zI00.js.map
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { i as graphqlMutation, n as createServerApolloClient, r as graphqlFetch } from "./apollo-client-Bw50r80c.js";
|
|
2
|
-
import { n as TRANSFER_CART_MUTATION } from "./cart-IHaLnQC4.js";
|
|
3
|
-
import { t as medusaError } from "./medusa-error-DDhA6RGC.js";
|
|
4
|
-
import { i as getCartId, r as getCacheTag } from "./cookies-lksVIe4_.js";
|
|
5
|
-
import { t as GET_CUSTOMER_QUERY } from "./customer-DIJz6m7L.js";
|
|
6
|
-
import { revalidateTag } from "next/cache";
|
|
7
|
-
import { cookies } from "next/headers";
|
|
8
|
-
|
|
9
|
-
//#region src/lib/data/customer.ts
|
|
10
|
-
const transferCart = async () => {
|
|
11
|
-
const cartId = await getCartId();
|
|
12
|
-
if (!cartId) return null;
|
|
13
|
-
try {
|
|
14
|
-
const cart = (await graphqlMutation({
|
|
15
|
-
mutation: TRANSFER_CART_MUTATION,
|
|
16
|
-
variables: { cartId }
|
|
17
|
-
}))?.transferCart ?? null;
|
|
18
|
-
if (cart) revalidateTag(await getCacheTag("carts"));
|
|
19
|
-
return cart;
|
|
20
|
-
} catch (err) {
|
|
21
|
-
medusaError(err);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
const retrieveCustomer = async () => {
|
|
25
|
-
const apolloClient = createServerApolloClient((await cookies()).toString());
|
|
26
|
-
try {
|
|
27
|
-
return await graphqlFetch({
|
|
28
|
-
query: GET_CUSTOMER_QUERY,
|
|
29
|
-
fetchPolicy: "network-only"
|
|
30
|
-
}, apolloClient).then((response) => response?.me ?? null);
|
|
31
|
-
} catch {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
//#endregion
|
|
37
|
-
export { transferCart as n, retrieveCustomer as t };
|
|
38
|
-
//# sourceMappingURL=customer-ClewjBBr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"customer-ClewjBBr.js","names":[],"sources":["../src/lib/data/customer.ts"],"sourcesContent":["import { revalidateTag } from 'next/cache';\nimport { cookies } from 'next/headers';\n\nimport {\n Customer,\n GetCustomerQuery,\n GetCustomerQueryVariables,\n TransferCartMutation,\n TransferCartMutationVariables,\n} from '@/types/graphql';\n\nimport {\n createServerApolloClient,\n graphqlFetch,\n graphqlMutation,\n} from '../gql/apollo-client';\nimport { TRANSFER_CART_MUTATION } from '../gql/mutations/cart';\nimport { GET_CUSTOMER_QUERY } from '../gql/queries/customer';\nimport { medusaError } from '../utils/medusa-error';\nimport { getCacheTag, getCartId } from './cookies';\n\nexport const transferCart = async (): Promise<\n TransferCartMutation['transferCart'] | null\n> => {\n const cartId = await getCartId();\n\n if (!cartId) {\n return null;\n }\n\n try {\n const result = await graphqlMutation<\n TransferCartMutation,\n TransferCartMutationVariables\n >({\n mutation: TRANSFER_CART_MUTATION,\n variables: {\n cartId,\n },\n });\n\n const cart = result?.transferCart ?? null;\n\n if (cart) {\n const cartCacheTag = await getCacheTag('carts');\n revalidateTag(cartCacheTag);\n }\n\n return cart;\n } catch (err) {\n medusaError(err);\n }\n};\n\nexport const retrieveCustomer = async (): Promise<Customer | null> => {\n const cookieHeader = (await cookies()).toString();\n const apolloClient = createServerApolloClient(cookieHeader);\n\n try {\n const customer = await graphqlFetch<\n GetCustomerQuery,\n GetCustomerQueryVariables\n >(\n {\n query: GET_CUSTOMER_QUERY,\n fetchPolicy: 'network-only',\n },\n apolloClient\n ).then((response) => response?.me ?? null);\n\n return customer;\n } catch {\n return null;\n }\n};\n"],"mappings":";;;;;;;;;AAqBA,MAAa,eAAe,YAEvB;CACH,MAAM,SAAS,MAAM,WAAW;AAEhC,KAAI,CAAC,OACH,QAAO;AAGT,KAAI;EAWF,MAAM,QAVS,MAAM,gBAGnB;GACA,UAAU;GACV,WAAW,EACT,QACD;GACF,CAAC,GAEmB,gBAAgB;AAErC,MAAI,KAEF,eADqB,MAAM,YAAY,QAAQ,CACpB;AAG7B,SAAO;UACA,KAAK;AACZ,cAAY,IAAI;;;AAIpB,MAAa,mBAAmB,YAAsC;CAEpE,MAAM,eAAe,0BADC,MAAM,SAAS,EAAE,UAAU,CACU;AAE3D,KAAI;AAYF,SAXiB,MAAM,aAIrB;GACE,OAAO;GACP,aAAa;GACd,EACD,aACD,CAAC,MAAM,aAAa,UAAU,MAAM,KAAK;SAGpC;AACN,SAAO"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { n as CUSTOMER_FRAGMENT } from "./customer-CgN4zI00.js";
|
|
2
|
-
import { gql } from "@apollo/client";
|
|
3
|
-
|
|
4
|
-
//#region src/lib/gql/queries/customer.ts
|
|
5
|
-
const GET_CUSTOMER_QUERY = gql`
|
|
6
|
-
query GetCustomer {
|
|
7
|
-
me {
|
|
8
|
-
...Customer
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
${CUSTOMER_FRAGMENT}
|
|
12
|
-
`;
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
export { GET_CUSTOMER_QUERY as t };
|
|
16
|
-
//# sourceMappingURL=customer-DIJz6m7L.js.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
//#region src/lib/utils/data-types.ts
|
|
2
|
-
const isObject = (input) => input instanceof Object;
|
|
3
|
-
const isArray = (input) => Array.isArray(input);
|
|
4
|
-
const isEmpty = (input) => {
|
|
5
|
-
return input === null || input === void 0 || isObject(input) && Object.keys(input).length === 0 || isArray(input) && input.length === 0 || typeof input === "string" && input.trim().length === 0;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
//#endregion
|
|
9
|
-
export { isEmpty as n, isObject as r, isArray as t };
|
|
10
|
-
//# sourceMappingURL=data-types-CTPJXmJH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-types-CTPJXmJH.js","names":[],"sources":["../src/lib/utils/data-types.ts"],"sourcesContent":["export const isObject = (input: any) => input instanceof Object;\nexport const isArray = (input: any) => Array.isArray(input);\nexport const isEmpty = (input: any) => {\n return (\n input === null ||\n input === undefined ||\n (isObject(input) && Object.keys(input).length === 0) ||\n (isArray(input) && (input as any[]).length === 0) ||\n (typeof input === 'string' && input.trim().length === 0)\n );\n};\n"],"mappings":";AAAA,MAAa,YAAY,UAAe,iBAAiB;AACzD,MAAa,WAAW,UAAe,MAAM,QAAQ,MAAM;AAC3D,MAAa,WAAW,UAAe;AACrC,QACE,UAAU,QACV,UAAU,UACT,SAAS,MAAM,IAAI,OAAO,KAAK,MAAM,CAAC,WAAW,KACjD,QAAQ,MAAM,IAAK,MAAgB,WAAW,KAC9C,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC,WAAW"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { t as deleteLineItem } from "./cart-xkcyWLfU.js";
|
|
2
|
-
import { useState } from "react";
|
|
3
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
-
import { clx } from "@medusajs/ui";
|
|
5
|
-
import { Spinner, Trash } from "@medusajs/icons";
|
|
6
|
-
|
|
7
|
-
//#region src/components/delete-button/index.tsx
|
|
8
|
-
const DeleteButton = ({ id, children, className }) => {
|
|
9
|
-
const [isDeleting, setIsDeleting] = useState(false);
|
|
10
|
-
const handleDelete = async (id$1) => {
|
|
11
|
-
setIsDeleting(true);
|
|
12
|
-
await deleteLineItem(id$1).catch((err) => {
|
|
13
|
-
setIsDeleting(false);
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
return /* @__PURE__ */ jsx("div", {
|
|
17
|
-
className: clx("text-small-regular flex items-center justify-between", className),
|
|
18
|
-
children: /* @__PURE__ */ jsxs("button", {
|
|
19
|
-
className: "text-ui-fg-subtle hover:text-ui-fg-base flex cursor-pointer gap-x-1",
|
|
20
|
-
onClick: () => handleDelete(id),
|
|
21
|
-
children: [isDeleting ? /* @__PURE__ */ jsx(Spinner, { className: "animate-spin" }) : /* @__PURE__ */ jsx(Trash, {}), /* @__PURE__ */ jsx("span", { children })]
|
|
22
|
-
})
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
//#endregion
|
|
27
|
-
export { DeleteButton as t };
|
|
28
|
-
//# sourceMappingURL=delete-button-Bnm5bof2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete-button-Bnm5bof2.js","names":["id"],"sources":["../src/components/delete-button/index.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Spinner, Trash } from '@medusajs/icons';\nimport { clx } from '@medusajs/ui';\n\nimport { deleteLineItem } from '@/lib/data/cart';\n\nconst DeleteButton = ({\n id,\n children,\n className,\n}: {\n id: string;\n children?: React.ReactNode;\n className?: string;\n}) => {\n const [isDeleting, setIsDeleting] = useState(false);\n\n const handleDelete = async (id: string) => {\n setIsDeleting(true);\n await deleteLineItem(id).catch((err) => {\n setIsDeleting(false);\n });\n };\n\n return (\n <div\n className={clx(\n 'text-small-regular flex items-center justify-between',\n className\n )}\n >\n <button\n className=\"text-ui-fg-subtle hover:text-ui-fg-base flex cursor-pointer gap-x-1\"\n onClick={() => handleDelete(id)}\n >\n {isDeleting ? <Spinner className=\"animate-spin\" /> : <Trash />}\n <span>{children}</span>\n </button>\n </div>\n );\n};\n\nexport { DeleteButton };\n"],"mappings":";;;;;;;AAOA,MAAM,gBAAgB,EACpB,IACA,UACA,gBAKI;CACJ,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;CAEnD,MAAM,eAAe,OAAO,SAAe;AACzC,gBAAc,KAAK;AACnB,QAAM,eAAeA,KAAG,CAAC,OAAO,QAAQ;AACtC,iBAAc,MAAM;IACpB;;AAGJ,QACE,oBAAC;EACC,WAAW,IACT,wDACA,UACD;YAED,qBAAC;GACC,WAAU;GACV,eAAe,aAAa,GAAG;cAE9B,aAAa,oBAAC,WAAQ,WAAU,iBAAiB,GAAG,oBAAC,UAAQ,EAC9D,oBAAC,UAAM,WAAgB;IAChB;GACL"}
|
package/dist/footer-BvNV-R9D.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { r as graphqlFetch } from "./apollo-client-Bw50r80c.js";
|
|
2
|
-
import { t as GET_FOOTER_QUERY } from "./footer-DCtgtjKS.js";
|
|
3
|
-
|
|
4
|
-
//#region src/lib/data/footer.ts
|
|
5
|
-
const getFooterContent = async () => {
|
|
6
|
-
try {
|
|
7
|
-
return (await graphqlFetch({ query: GET_FOOTER_QUERY }))?.footer || null;
|
|
8
|
-
} catch (error) {
|
|
9
|
-
console.error("Error fetching footer content:", error);
|
|
10
|
-
return null;
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
export { getFooterContent as t };
|
|
16
|
-
//# sourceMappingURL=footer-BvNV-R9D.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"footer-BvNV-R9D.js","names":[],"sources":["../src/lib/data/footer.ts"],"sourcesContent":["import { graphqlFetch } from '@/lib/gql/apollo-client';\nimport { GET_FOOTER_QUERY } from '@/lib/gql/queries/footer';\nimport { GetFooterQuery, GetFooterQueryVariables } from '@/types/graphql';\n\nexport const getFooterContent = async () => {\n try {\n const data = await graphqlFetch<GetFooterQuery, GetFooterQueryVariables>({\n query: GET_FOOTER_QUERY,\n });\n return data?.footer || null;\n } catch (error) {\n console.error('Error fetching footer content:', error);\n return null;\n }\n};\n"],"mappings":";;;;AAIA,MAAa,mBAAmB,YAAY;AAC1C,KAAI;AAIF,UAHa,MAAM,aAAsD,EACvE,OAAO,kBACR,CAAC,GACW,UAAU;UAChB,OAAO;AACd,UAAQ,MAAM,kCAAkC,MAAM;AACtD,SAAO"}
|