@commercelayer/react-components
Version:
The Official Commerce Layer React Components
2 lines • 1.99 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){var _a,_b,_c;const{timeFormat,showShippingMethodName,showShippingMethodPrice,children,labels}=props,p=tslib_1.__rest(props,["timeFormat","showShippingMethodName","showShippingMethodPrice","children","labels"]),{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((_a=labels?.available)!==null&&_a!==void 0?_a:"Available"),mn&&mx&&timeFormat&&text.push(`in ${mn} - ${mx} ${timeFormat} ${name} ${shippingMethodPrice}`)):quantity===0?text.push((_b=labels?.outOfStock)!==null&&_b!==void 0?_b:"Out of stock"):quantity<0&&text.push((_c=labels?.negativeStock)!==null&&_c!==void 0?_c:"Out of stock"));const parentProps=Object.assign({min,max,shipping_method:shippingMethod,quantity,text:text.join(" ")},props);return children?(0,jsx_runtime_1.jsx)(Parent_1.default,Object.assign({},parentProps,{children})):(0,jsx_runtime_1.jsx)("span",Object.assign({"data-testid":skuCode?`availability-${skuCode}`:""},p,{children:text.join(" ")}))}exports.default=AvailabilityTemplate;