UNPKG

@commercelayer/react-components

Version:
2 lines 1.83 kB
"use client"; "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.InStockSubscriptionButton=InStockSubscriptionButton;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),CommerceLayerContext_1=tslib_1.__importDefault(require("../../context/CommerceLayerContext")),InStockSubscriptionContext_1=tslib_1.__importDefault(require("../../context/InStockSubscriptionContext")),useCustomContext_1=tslib_1.__importDefault(require("../../utils/hooks/useCustomContext")),jwt_1=require("../../utils/jwt"),react_1=require("react");function InStockSubscriptionButton({skuCode,customerEmail,children,onClick,show=!1,label="Subscribe",loadingLabel="Loading...",...props}){const{setInStockSubscription}=(0,useCustomContext_1.default)({context:InStockSubscriptionContext_1.default,contextComponentName:"InStockSubscriptionsContainer",currentComponentName:"InStockSubscriptionButton",key:"setInStockSubscription"}),{accessToken}=(0,react_1.useContext)(CommerceLayerContext_1.default),[loading,setLoading]=(0,react_1.useState)(!1),handleClick=async()=>{if(accessToken!=null&&customerEmail==null&&(0,jwt_1.jwt)(accessToken)?.owner==null){console.error("Missing customerEmail");return}if(setInStockSubscription==null){console.error("Missing <InStockSubscriptionsContainer>");return}setLoading(!0);const res=await setInStockSubscription({customerEmail,skuCode});onClick?.(res),setLoading(!1)};if(children!=null){const parentProps={skuCode,customerEmail,onClick,show,label,loadingLabel,...props};return(0,jsx_runtime_1.jsx)(Parent_1.default,{...parentProps,children})}return show?(0,jsx_runtime_1.jsx)("button",{onClick:()=>{handleClick()},disabled:loading,...props,children:loading?loadingLabel:label}):null}exports.default=InStockSubscriptionButton;