@commercelayer/react-components
Version:
The Official Commerce Layer React Components
2 lines • 1.75 kB
JavaScript
"use client";
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.AvailabilityTemplate=AvailabilityTemplate;const tslib_1=require("tslib"),jsx_runtime_1=require("react/jsx-runtime"),AvailabilityContext_1=tslib_1.__importDefault(require("../../context/AvailabilityContext")),Parent_1=tslib_1.__importDefault(require("../utils/Parent")),useCustomContext_1=tslib_1.__importDefault(require("../../utils/hooks/useCustomContext"));function AvailabilityTemplate(props){const{timeFormat,showShippingMethodName,showShippingMethodPrice,children,labels,...p}=props,{min,max,shipping_method:shippingMethod,quantity,skuCode}=(0,useCustomContext_1.default)({context:AvailabilityContext_1.default,contextComponentName:"AvailabilityContainer",currentComponentName:"AvailabilityTemplate",key:"parent"}),text=[],mn=min!=null&&timeFormat!=null?min?.[timeFormat]:"",mx=max!=null&&timeFormat!=null?max?.[timeFormat]:"",shippingMethodPrice=showShippingMethodPrice&&shippingMethod?.formatted_price_amount?`(${shippingMethod?.formatted_price_amount})`:"",name=showShippingMethodName&&shippingMethod?`with ${shippingMethod.name}`:"";quantity!=null&&(quantity>0?(text.push(labels?.available??"Available"),mn&&mx&&timeFormat&&text.push(`in ${mn} - ${mx} ${timeFormat} ${name} ${shippingMethodPrice}`)):quantity===0?text.push(labels?.outOfStock??"Out of stock"):quantity<0&&text.push(labels?.negativeStock??"Out of stock"));const parentProps={min,max,shipping_method:shippingMethod,quantity,text:text.join(" "),...props};return children?(0,jsx_runtime_1.jsx)(Parent_1.default,{...parentProps,children}):(0,jsx_runtime_1.jsx)("span",{"data-testid":skuCode?`availability-${skuCode}`:"",...p,children:text.join(" ")})}exports.default=AvailabilityTemplate;