@anker-in/lib 1.1.1 → 1.1.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +9 -9
- package/dist/cjs/cart/hooks/basic/useBuyNow.d.ts +1 -1
- package/dist/cjs/cart/hooks/basic/useBuyNow.d.ts.map +1 -1
- package/dist/cjs/cart/hooks/basic/useBuyNow.js +1 -1
- package/dist/cjs/cart/hooks/basic/useBuyNow.js.map +3 -3
- package/dist/esm/cart/hooks/basic/useBuyNow.d.ts +1 -1
- package/dist/esm/cart/hooks/basic/useBuyNow.d.ts.map +1 -1
- package/dist/esm/cart/hooks/basic/useBuyNow.js +1 -1
- package/dist/esm/cart/hooks/basic/useBuyNow.js.map +3 -3
- package/package.json +1 -1
- package/src/cart/hooks/basic/useBuyNow.ts +3 -2
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
|
|
2
|
-
> @anker-in/lib@1.1.
|
|
2
|
+
> @anker-in/lib@1.1.1 build /Users/anker/Code/headless-ui/packages/lib
|
|
3
3
|
> pnpm run build:js:esm & pnpm run build:js:cjs & pnpm run build:types:esm & pnpm run build:types:cjs
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @anker-in/lib@1.1.
|
|
7
|
-
> node esbuild-
|
|
6
|
+
> @anker-in/lib@1.1.1 build:js:cjs /Users/anker/Code/headless-ui/packages/lib
|
|
7
|
+
> node esbuild-cjs.mjs
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
> @anker-in/lib@1.1.
|
|
11
|
-
> tsc --outdir dist/
|
|
10
|
+
> @anker-in/lib@1.1.1 build:types:esm /Users/anker/Code/headless-ui/packages/lib
|
|
11
|
+
> tsc --outdir dist/esm
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
> @anker-in/lib@1.1.
|
|
15
|
-
>
|
|
14
|
+
> @anker-in/lib@1.1.1 build:js:esm /Users/anker/Code/headless-ui/packages/lib
|
|
15
|
+
> node esbuild-esm.mjs
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
> @anker-in/lib@1.1.
|
|
19
|
-
>
|
|
18
|
+
> @anker-in/lib@1.1.1 build:types:cjs /Users/anker/Code/headless-ui/packages/lib
|
|
19
|
+
> tsc --outdir dist/cjs
|
|
20
20
|
|
|
@@ -9,7 +9,7 @@ type UseBuyNowProps = {
|
|
|
9
9
|
export type BuyNowArgs = {
|
|
10
10
|
lineItems: BuyNowLineItems;
|
|
11
11
|
discountCodes?: string[];
|
|
12
|
-
customAttributes?: Attributes
|
|
12
|
+
customAttributes?: Attributes;
|
|
13
13
|
buyerIdentity?: CartBuyerIdentity;
|
|
14
14
|
gtmParams?: GtmParams;
|
|
15
15
|
fbqTrackConfig?: FbqBuyNowTrackConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuyNow.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useBuyNow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAa,MAAM,kBAAkB,CAAA;AAEjF,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAQxD,KAAK,cAAc,GAAG;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,eAAe,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,gBAAgB,CAAC,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"useBuyNow.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useBuyNow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAa,MAAM,kBAAkB,CAAA;AAEjF,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAQxD,KAAK,cAAc,GAAG;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,eAAe,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,gBAAgB,CAAC,EAAE,UAAU,CAAA;IAC7B,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,oCAAiD,cAAmB,EACpE,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG;IAClF,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,8FA6EpC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var A=Object.create;var s=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var R=(t,r)=>{for(var o in r)s(t,o,{get:r[o],enumerable:!0})},c=(t,r,o,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of T(r))!M.call(t,e)&&e!==o&&s(t,e,{get:()=>r[e],enumerable:!(a=P(r,e))||a.enumerable});return t};var S=(t,r,o)=>(o=t!=null?A(F(t)):{},c(r||!t||!t.__esModule?s(o,"default",{value:t,enumerable:!0}):o,t)),W=t=>c(s({},"__esModule",{value:!0}),t);var E={};R(E,{useBuyNow:()=>x});module.exports=W(E);var C=require("react"),b=S(require("swr/mutation")),m=require("../../../shopify"),d=require("../../../context"),p=require("../../const"),g=require("../../track/gtm"),w=require("../../track/fbq");const x=({withTrack:t=!0,redirectToCheckout:r=!0}={},o=p.defaultSWRMutationConfiguration)=>{const{storefrontToken:a,storeDomain:e,brand:l}=(0,d.useHeadlessContext)(),N=(0,C.useCallback)(async(G,{arg:B})=>{const{lineItems:u,discountCodes:I,gtmParams:q={},buyerIdentity:h,fbqTrackConfig:f,customAttributes:k}=B;if(!u)return;const y=u.map(n=>({merchandiseId:n.variant.id,quantity:n.quantity||1,attributes:n.attributes})).filter(n=>n.merchandiseId&&n.quantity);let i;if(y.length>0&&(i=await(0,m.createCart)({options:{attributes:k,lines:y,buyerIdentity:h,discountCodes:I},config:{storefrontToken:a,storeDomain:e}})),t&&((0,g.buyNowGa)({lineItems:u,gtmParams:{...q,brand:l}}),f&&(0,w.buyNowFbq)({trackConfig:f})),r&&i?.url)window.location.href=i.url;else throw new Error("Failed to buy now");return i},[t,r,m.createCart]);return(0,b.default)("buyNow",N,o)};
|
|
2
2
|
//# sourceMappingURL=useBuyNow.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/cart/hooks/basic/useBuyNow.ts"],
|
|
4
|
-
"sourcesContent": ["import { Attributes, Cart, CartBuyerIdentity, CartInput } from '../../../shopify'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { FbqBuyNowTrackConfig } from '../../track/fbq'\nimport { GtmParams, BuyNowLineItems } from '../../types'\n// import { startInactiveSpan } from '@sentry/nextjs'\nimport { createCart as createCartFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\nimport { buyNowGa } from '../../track/gtm'\nimport { buyNowFbq } from '../../track/fbq'\n\ntype UseBuyNowProps = {\n withTrack?: boolean // \u662F\u5426\u9700\u8981\u9ED8\u8BA4\u57CB\u70B9\n redirectToCheckout?: boolean // \u662F\u5426\u91CD\u5B9A\u5411\u5230\u7ED3\u8D26\u9875\n}\n\nexport type BuyNowArgs = {\n lineItems: BuyNowLineItems\n discountCodes?: string[]\n customAttributes?: Attributes
|
|
5
|
-
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAA4B,iBAC5BC,EAAyD,2BAIzDC,EAAgD,4BAChDC,EAAmC,4BACnCC,EAAgD,uBAChDC,EAAyB,2BACzBC,EAA0B,2BAgBnB,MAAMR,EAAY,CACvB,CAAE,UAAAS,EAAY,GAAM,mBAAAC,EAAqB,EAAK,EAAoB,CAAC,EACnEC,EAEI,oCACD,CACH,KAAM,CAAE,gBAAAC,EAAiB,YAAAC,EAAa,MAAAC,CAAM,KAAI,sBAAmB,EAE7DC,KAAU,eACd,MAAOC,EAAQ,CAAE,IAAAC,CAAI,IAA2B,CAC9C,KAAM,CAAE,UAAAC,EAAW,cAAAC,EAAe,UAAAC,EAAY,CAAC,EAAG,cAAAC,EAAe,eAAAC,
|
|
6
|
-
"names": ["useBuyNow_exports", "__export", "useBuyNow", "__toCommonJS", "import_react", "import_mutation", "import_shopify", "import_context", "import_const", "import_gtm", "import_fbq", "withTrack", "redirectToCheckout", "swrOptions", "storefrontToken", "storeDomain", "brand", "trigger", "_", "arg", "lineItems", "discountCodes", "gtmParams", "buyerIdentity", "fbqTrackConfig", "linesToBuyNow", "item", "resultCart", "createCartFetcher", "useSWRMutation"]
|
|
4
|
+
"sourcesContent": ["import { Attributes, Cart, CartBuyerIdentity, CartInput } from '../../../shopify'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { FbqBuyNowTrackConfig } from '../../track/fbq'\nimport { GtmParams, BuyNowLineItems } from '../../types'\n// import { startInactiveSpan } from '@sentry/nextjs'\nimport { createCart as createCartFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\nimport { buyNowGa } from '../../track/gtm'\nimport { buyNowFbq } from '../../track/fbq'\n\ntype UseBuyNowProps = {\n withTrack?: boolean // \u662F\u5426\u9700\u8981\u9ED8\u8BA4\u57CB\u70B9\n redirectToCheckout?: boolean // \u662F\u5426\u91CD\u5B9A\u5411\u5230\u7ED3\u8D26\u9875\n}\n\nexport type BuyNowArgs = {\n lineItems: BuyNowLineItems\n discountCodes?: string[]\n customAttributes?: Attributes\n buyerIdentity?: CartBuyerIdentity\n gtmParams?: GtmParams\n fbqTrackConfig?: FbqBuyNowTrackConfig\n}\n\nexport const useBuyNow = (\n { withTrack = true, redirectToCheckout = true }: UseBuyNowProps = {},\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, BuyNowArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain, brand } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: BuyNowArgs }) => {\n const { lineItems, discountCodes, gtmParams = {}, buyerIdentity, fbqTrackConfig,customAttributes } = arg\n\n if (!lineItems) {\n return\n }\n\n // const buyNowSpan = startInactiveSpan({\n // name: 'buyNow',\n // op: 'business',\n // })\n\n const linesToBuyNow = lineItems\n .map(item => ({\n merchandiseId: item.variant.id,\n quantity: item.quantity || 1,\n attributes: item.attributes,\n }))\n .filter(item => item.merchandiseId && item.quantity)\n\n let resultCart: Cart | undefined\n if (linesToBuyNow.length > 0) {\n // const buyNowAPISpan = startInactiveSpan({\n // name: 'buyNowAPI',\n // op: 'business',\n // parentSpan: buyNowSpan,\n // })\n\n // const createCartApiSpan = startInactiveSpan({\n // name: 'createCartAPI',\n // op: 'business',\n // parentSpan: buyNowAPISpan,\n // })\n // \u521B\u5EFA\u8D2D\u7269\u8F66\n const createCartOptions = {\n attributes: customAttributes,\n lines: linesToBuyNow,\n buyerIdentity,\n discountCodes,\n } as CartInput\n resultCart = await createCartFetcher({\n options: createCartOptions,\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n // createCartApiSpan.end()\n\n // buyNowAPISpan.end()\n }\n\n // \u57CB\u70B9\n if (withTrack) {\n buyNowGa({ lineItems, gtmParams: { ...gtmParams, brand } })\n if (fbqTrackConfig) {\n buyNowFbq({ trackConfig: fbqTrackConfig })\n }\n }\n\n // buyNowSpan.end()\n if (redirectToCheckout && resultCart?.url) {\n window.location.href = resultCart.url\n } else {\n throw new Error('Failed to buy now')\n }\n return resultCart\n },\n [withTrack, redirectToCheckout, createCartFetcher]\n )\n\n return useSWRMutation('buyNow', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAA4B,iBAC5BC,EAAyD,2BAIzDC,EAAgD,4BAChDC,EAAmC,4BACnCC,EAAgD,uBAChDC,EAAyB,2BACzBC,EAA0B,2BAgBnB,MAAMR,EAAY,CACvB,CAAE,UAAAS,EAAY,GAAM,mBAAAC,EAAqB,EAAK,EAAoB,CAAC,EACnEC,EAEI,oCACD,CACH,KAAM,CAAE,gBAAAC,EAAiB,YAAAC,EAAa,MAAAC,CAAM,KAAI,sBAAmB,EAE7DC,KAAU,eACd,MAAOC,EAAQ,CAAE,IAAAC,CAAI,IAA2B,CAC9C,KAAM,CAAE,UAAAC,EAAW,cAAAC,EAAe,UAAAC,EAAY,CAAC,EAAG,cAAAC,EAAe,eAAAC,EAAe,iBAAAC,CAAiB,EAAIN,EAErG,GAAI,CAACC,EACH,OAQF,MAAMM,EAAgBN,EACnB,IAAIO,IAAS,CACZ,cAAeA,EAAK,QAAQ,GAC5B,SAAUA,EAAK,UAAY,EAC3B,WAAYA,EAAK,UACnB,EAAE,EACD,OAAOA,GAAQA,EAAK,eAAiBA,EAAK,QAAQ,EAErD,IAAIC,EAyCJ,GAxCIF,EAAc,OAAS,IAmBzBE,EAAa,QAAM,EAAAC,YAAkB,CACnC,QAPwB,CACxB,WAAYJ,EACZ,MAAOC,EACP,cAAAH,EACA,cAAAF,CACF,EAGE,OAAQ,CACN,gBAAAP,EACA,YAAAC,CACF,CACF,CAAC,GAOCJ,OACF,YAAS,CAAE,UAAAS,EAAW,UAAW,CAAE,GAAGE,EAAW,MAAAN,CAAM,CAAE,CAAC,EACtDQ,MACF,aAAU,CAAE,YAAaA,CAAe,CAAC,GAKzCZ,GAAsBgB,GAAY,IACpC,OAAO,SAAS,KAAOA,EAAW,QAElC,OAAM,IAAI,MAAM,mBAAmB,EAErC,OAAOA,CACT,EACA,CAACjB,EAAWC,EAAoB,EAAAiB,UAAiB,CACnD,EAEA,SAAO,EAAAC,SAAe,SAAUb,EAASJ,CAAU,CACrD",
|
|
6
|
+
"names": ["useBuyNow_exports", "__export", "useBuyNow", "__toCommonJS", "import_react", "import_mutation", "import_shopify", "import_context", "import_const", "import_gtm", "import_fbq", "withTrack", "redirectToCheckout", "swrOptions", "storefrontToken", "storeDomain", "brand", "trigger", "_", "arg", "lineItems", "discountCodes", "gtmParams", "buyerIdentity", "fbqTrackConfig", "customAttributes", "linesToBuyNow", "item", "resultCart", "createCartFetcher", "useSWRMutation"]
|
|
7
7
|
}
|
|
@@ -9,7 +9,7 @@ type UseBuyNowProps = {
|
|
|
9
9
|
export type BuyNowArgs = {
|
|
10
10
|
lineItems: BuyNowLineItems;
|
|
11
11
|
discountCodes?: string[];
|
|
12
|
-
customAttributes?: Attributes
|
|
12
|
+
customAttributes?: Attributes;
|
|
13
13
|
buyerIdentity?: CartBuyerIdentity;
|
|
14
14
|
gtmParams?: GtmParams;
|
|
15
15
|
fbqTrackConfig?: FbqBuyNowTrackConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuyNow.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useBuyNow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAa,MAAM,kBAAkB,CAAA;AAEjF,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAQxD,KAAK,cAAc,GAAG;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,eAAe,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,gBAAgB,CAAC,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"useBuyNow.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useBuyNow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAa,MAAM,kBAAkB,CAAA;AAEjF,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAQxD,KAAK,cAAc,GAAG;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,eAAe,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,gBAAgB,CAAC,EAAE,UAAU,CAAA;IAC7B,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,oCAAiD,cAAmB,EACpE,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG;IAClF,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,8FA6EpC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useCallback as
|
|
1
|
+
import{useCallback as w}from"react";import l from"swr/mutation";import{createCart as s}from"../../../shopify";import{useHeadlessContext as N}from"../../../context";import{defaultSWRMutationConfiguration as B}from"../../const";import{buyNowGa as I}from"../../track/gtm";import{buyNowFbq as q}from"../../track/fbq";const _=({withTrack:e=!0,redirectToCheckout:n=!0}={},u=B)=>{const{storefrontToken:m,storeDomain:f,brand:y}=N(),c=w(async(h,{arg:C})=>{const{lineItems:o,discountCodes:b,gtmParams:d={},buyerIdentity:p,fbqTrackConfig:a,customAttributes:g}=C;if(!o)return;const i=o.map(t=>({merchandiseId:t.variant.id,quantity:t.quantity||1,attributes:t.attributes})).filter(t=>t.merchandiseId&&t.quantity);let r;if(i.length>0&&(r=await s({options:{attributes:g,lines:i,buyerIdentity:p,discountCodes:b},config:{storefrontToken:m,storeDomain:f}})),e&&(I({lineItems:o,gtmParams:{...d,brand:y}}),a&&q({trackConfig:a})),n&&r?.url)window.location.href=r.url;else throw new Error("Failed to buy now");return r},[e,n,s]);return l("buyNow",c,u)};export{_ as useBuyNow};
|
|
2
2
|
//# sourceMappingURL=useBuyNow.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/cart/hooks/basic/useBuyNow.ts"],
|
|
4
|
-
"sourcesContent": ["import { Attributes, Cart, CartBuyerIdentity, CartInput } from '../../../shopify'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { FbqBuyNowTrackConfig } from '../../track/fbq'\nimport { GtmParams, BuyNowLineItems } from '../../types'\n// import { startInactiveSpan } from '@sentry/nextjs'\nimport { createCart as createCartFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\nimport { buyNowGa } from '../../track/gtm'\nimport { buyNowFbq } from '../../track/fbq'\n\ntype UseBuyNowProps = {\n withTrack?: boolean // \u662F\u5426\u9700\u8981\u9ED8\u8BA4\u57CB\u70B9\n redirectToCheckout?: boolean // \u662F\u5426\u91CD\u5B9A\u5411\u5230\u7ED3\u8D26\u9875\n}\n\nexport type BuyNowArgs = {\n lineItems: BuyNowLineItems\n discountCodes?: string[]\n customAttributes?: Attributes
|
|
5
|
-
"mappings": "AACA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eAIzD,OAAS,cAAcC,MAAyB,mBAChD,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,cAChD,OAAS,YAAAC,MAAgB,kBACzB,OAAS,aAAAC,MAAiB,kBAgBnB,MAAMC,EAAY,CACvB,CAAE,UAAAC,EAAY,GAAM,mBAAAC,EAAqB,EAAK,EAAoB,CAAC,EACnEC,EAEIN,IACD,CACH,KAAM,CAAE,gBAAAO,EAAiB,YAAAC,EAAa,MAAAC,CAAM,EAAIV,EAAmB,EAE7DW,EAAUd,EACd,MAAOe,EAAQ,CAAE,IAAAC,CAAI,IAA2B,CAC9C,KAAM,CAAE,UAAAC,EAAW,cAAAC,EAAe,UAAAC,EAAY,CAAC,EAAG,cAAAC,EAAe,eAAAC,
|
|
6
|
-
"names": ["useCallback", "useSWRMutation", "createCartFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "buyNowGa", "buyNowFbq", "useBuyNow", "withTrack", "redirectToCheckout", "swrOptions", "storefrontToken", "storeDomain", "brand", "trigger", "_", "arg", "lineItems", "discountCodes", "gtmParams", "buyerIdentity", "fbqTrackConfig", "linesToBuyNow", "item", "resultCart"]
|
|
4
|
+
"sourcesContent": ["import { Attributes, Cart, CartBuyerIdentity, CartInput } from '../../../shopify'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { FbqBuyNowTrackConfig } from '../../track/fbq'\nimport { GtmParams, BuyNowLineItems } from '../../types'\n// import { startInactiveSpan } from '@sentry/nextjs'\nimport { createCart as createCartFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\nimport { buyNowGa } from '../../track/gtm'\nimport { buyNowFbq } from '../../track/fbq'\n\ntype UseBuyNowProps = {\n withTrack?: boolean // \u662F\u5426\u9700\u8981\u9ED8\u8BA4\u57CB\u70B9\n redirectToCheckout?: boolean // \u662F\u5426\u91CD\u5B9A\u5411\u5230\u7ED3\u8D26\u9875\n}\n\nexport type BuyNowArgs = {\n lineItems: BuyNowLineItems\n discountCodes?: string[]\n customAttributes?: Attributes\n buyerIdentity?: CartBuyerIdentity\n gtmParams?: GtmParams\n fbqTrackConfig?: FbqBuyNowTrackConfig\n}\n\nexport const useBuyNow = (\n { withTrack = true, redirectToCheckout = true }: UseBuyNowProps = {},\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, BuyNowArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain, brand } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: BuyNowArgs }) => {\n const { lineItems, discountCodes, gtmParams = {}, buyerIdentity, fbqTrackConfig,customAttributes } = arg\n\n if (!lineItems) {\n return\n }\n\n // const buyNowSpan = startInactiveSpan({\n // name: 'buyNow',\n // op: 'business',\n // })\n\n const linesToBuyNow = lineItems\n .map(item => ({\n merchandiseId: item.variant.id,\n quantity: item.quantity || 1,\n attributes: item.attributes,\n }))\n .filter(item => item.merchandiseId && item.quantity)\n\n let resultCart: Cart | undefined\n if (linesToBuyNow.length > 0) {\n // const buyNowAPISpan = startInactiveSpan({\n // name: 'buyNowAPI',\n // op: 'business',\n // parentSpan: buyNowSpan,\n // })\n\n // const createCartApiSpan = startInactiveSpan({\n // name: 'createCartAPI',\n // op: 'business',\n // parentSpan: buyNowAPISpan,\n // })\n // \u521B\u5EFA\u8D2D\u7269\u8F66\n const createCartOptions = {\n attributes: customAttributes,\n lines: linesToBuyNow,\n buyerIdentity,\n discountCodes,\n } as CartInput\n resultCart = await createCartFetcher({\n options: createCartOptions,\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n // createCartApiSpan.end()\n\n // buyNowAPISpan.end()\n }\n\n // \u57CB\u70B9\n if (withTrack) {\n buyNowGa({ lineItems, gtmParams: { ...gtmParams, brand } })\n if (fbqTrackConfig) {\n buyNowFbq({ trackConfig: fbqTrackConfig })\n }\n }\n\n // buyNowSpan.end()\n if (redirectToCheckout && resultCart?.url) {\n window.location.href = resultCart.url\n } else {\n throw new Error('Failed to buy now')\n }\n return resultCart\n },\n [withTrack, redirectToCheckout, createCartFetcher]\n )\n\n return useSWRMutation('buyNow', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "AACA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eAIzD,OAAS,cAAcC,MAAyB,mBAChD,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,cAChD,OAAS,YAAAC,MAAgB,kBACzB,OAAS,aAAAC,MAAiB,kBAgBnB,MAAMC,EAAY,CACvB,CAAE,UAAAC,EAAY,GAAM,mBAAAC,EAAqB,EAAK,EAAoB,CAAC,EACnEC,EAEIN,IACD,CACH,KAAM,CAAE,gBAAAO,EAAiB,YAAAC,EAAa,MAAAC,CAAM,EAAIV,EAAmB,EAE7DW,EAAUd,EACd,MAAOe,EAAQ,CAAE,IAAAC,CAAI,IAA2B,CAC9C,KAAM,CAAE,UAAAC,EAAW,cAAAC,EAAe,UAAAC,EAAY,CAAC,EAAG,cAAAC,EAAe,eAAAC,EAAe,iBAAAC,CAAiB,EAAIN,EAErG,GAAI,CAACC,EACH,OAQF,MAAMM,EAAgBN,EACnB,IAAIO,IAAS,CACZ,cAAeA,EAAK,QAAQ,GAC5B,SAAUA,EAAK,UAAY,EAC3B,WAAYA,EAAK,UACnB,EAAE,EACD,OAAOA,GAAQA,EAAK,eAAiBA,EAAK,QAAQ,EAErD,IAAIC,EAyCJ,GAxCIF,EAAc,OAAS,IAmBzBE,EAAa,MAAMvB,EAAkB,CACnC,QAPwB,CACxB,WAAYoB,EACZ,MAAOC,EACP,cAAAH,EACA,cAAAF,CACF,EAGE,OAAQ,CACN,gBAAAP,EACA,YAAAC,CACF,CACF,CAAC,GAOCJ,IACFH,EAAS,CAAE,UAAAY,EAAW,UAAW,CAAE,GAAGE,EAAW,MAAAN,CAAM,CAAE,CAAC,EACtDQ,GACFf,EAAU,CAAE,YAAae,CAAe,CAAC,GAKzCZ,GAAsBgB,GAAY,IACpC,OAAO,SAAS,KAAOA,EAAW,QAElC,OAAM,IAAI,MAAM,mBAAmB,EAErC,OAAOA,CACT,EACA,CAACjB,EAAWC,EAAoBP,CAAiB,CACnD,EAEA,OAAOD,EAAe,SAAUa,EAASJ,CAAU,CACrD",
|
|
6
|
+
"names": ["useCallback", "useSWRMutation", "createCartFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "buyNowGa", "buyNowFbq", "useBuyNow", "withTrack", "redirectToCheckout", "swrOptions", "storefrontToken", "storeDomain", "brand", "trigger", "_", "arg", "lineItems", "discountCodes", "gtmParams", "buyerIdentity", "fbqTrackConfig", "customAttributes", "linesToBuyNow", "item", "resultCart"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@ type UseBuyNowProps = {
|
|
|
18
18
|
export type BuyNowArgs = {
|
|
19
19
|
lineItems: BuyNowLineItems
|
|
20
20
|
discountCodes?: string[]
|
|
21
|
-
customAttributes?: Attributes
|
|
21
|
+
customAttributes?: Attributes
|
|
22
22
|
buyerIdentity?: CartBuyerIdentity
|
|
23
23
|
gtmParams?: GtmParams
|
|
24
24
|
fbqTrackConfig?: FbqBuyNowTrackConfig
|
|
@@ -34,7 +34,7 @@ export const useBuyNow = (
|
|
|
34
34
|
|
|
35
35
|
const trigger = useCallback(
|
|
36
36
|
async (_: any, { arg }: { arg: BuyNowArgs }) => {
|
|
37
|
-
const { lineItems, discountCodes, gtmParams = {}, buyerIdentity, fbqTrackConfig } = arg
|
|
37
|
+
const { lineItems, discountCodes, gtmParams = {}, buyerIdentity, fbqTrackConfig,customAttributes } = arg
|
|
38
38
|
|
|
39
39
|
if (!lineItems) {
|
|
40
40
|
return
|
|
@@ -68,6 +68,7 @@ export const useBuyNow = (
|
|
|
68
68
|
// })
|
|
69
69
|
// 创建购物车
|
|
70
70
|
const createCartOptions = {
|
|
71
|
+
attributes: customAttributes,
|
|
71
72
|
lines: linesToBuyNow,
|
|
72
73
|
buyerIdentity,
|
|
73
74
|
discountCodes,
|