UNPKG

react-estimated-delivery

Version:

React component for estimated delivery with config and holiday options.

3 lines (2 loc) 3.67 kB
"use strict";var e=require("react/jsx-runtime"),t=require("react");!function(e,t){void 0===t&&(t={});var n=t.insertAt;if("undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===n&&r.firstChild?r.insertBefore(a,r.firstChild):r.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}(".delivery-wrapper {\r\n padding: 1rem;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 12px;\r\n}\r\n\r\n.countdown-wrapper {\r\n display: flex;\r\n gap: 12px;\r\n}\r\n\r\n.estimated-delivery-container .text-container {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 12px;\r\n}\r\n\r\n.estimated-delivery-container .text-container > span {\r\n display: flex;\r\n flex-direction: row;\r\n gap: 12px;\r\n align-items: center;\r\n}");const n=n=>{const r=n.currentDate,a=Number(n.cutOffTime.split(":")[0]),i=Number(n.cutOffTime.split(":")[1]),s=new Date(r.getFullYear(),r.getMonth(),r.getDate(),a,i),l=new Date(s.setDate(r.getDate()+1)),o=(new Date).toLocaleString("en-US",{timeZone:n.timezone}),[d,c]=t.useState(0);t.useEffect((()=>{const e=setInterval((()=>{c(Number(l)-new Date(o).getTime())}),1e3);return()=>clearInterval(e)}),[l]);const m=Math.floor(d%864e5/36e5),u=Math.floor(d%36e5/6e4),D=Math.floor(d%6e4/1e3);return e.jsxs("div",{className:"countdown-wrapper",children:[e.jsx("span",{children:n.orderWithinText}),m>0&&e.jsxs("p",{children:[m,n.timerText.hours," "]}),u>0&&e.jsxs("p",{children:[u,n.timerText.minutes," "]}),D>0&&e.jsxs("p",{children:[D,n.timerText.seconds]})]})};exports.EstimatedDeliveryComponent=r=>{const a=new Date((i=r.timezone,(new Date).toLocaleString("en-US",{timeZone:i})));var i;const s=a.getHours(),l=a.getMinutes(),o=l<10?"0"+l:l,d=Number(r.cutOffTime.split(":").join(""))<Number(s+""+o),c=Number(r.cutOffTime.split(":")[0]),m=Number(r.cutOffTime.split(":")[1]),u=new Date(a.getFullYear(),a.getMonth(),a.getDate(),c,m),[D,x]=t.useState(u),[p,y]=t.useState(!0),[f,g]=t.useState(!1);function h(e){return["sunday","monday","tuesday","wednesday","thursday","friday","saturday"][e]||""}function v(e,t){const n=t?r.deliveryDayIncrement:1;let i=new Date((new Date).setDate(e.getDate()+n));if(!0!==(s=e,r.holidays.map((e=>e.replace(/-/g,"/"))).includes(s.toLocaleDateString(r.dateFormat))))if(a.getDate()==e.getDate()&&!d&&r.isNextDayAvailable){if(1==r.businessDays[h(a.getDay())]&&1==r.deliveryDays[h(i.getDay())])return x(i),y(!1),void g(!0);v(i,!1)}else if(a.getDate()==e.getDate())v(i,!1);else if(t){if(1==r.deliveryDays[h(i.getDay())])return x(i),void y(!1);v(i,!0)}else 1==r.businessDays[h(e.getDay())]?1==r.deliveryDays[h(i.getDay())]?v(e,!0):v(i,!0):v(i,!1);else v(i,!1);var s}return t.useEffect((()=>{1==p&&v(u,!1)}),[p,v]),e.jsx("div",{className:"estimated-delivery-container",children:!p&&e.jsx("div",{className:"delivery-wrapper",children:e.jsxs("div",{className:"text-container",children:[e.jsxs("span",{children:[r.children," ",e.jsx("span",{children:f?r.nextDayDeliveryAvailableText:r.nextDayDeliveryNotAvailableText})]}),r.enableCountDownTimer&&!d&&r.isNextDayAvailable&&f&&e.jsx(n,{cutOffTime:r.cutOffTime,currentDate:new Date(a.toLocaleDateString("en-US",{timeZone:r.timezone})),timerText:r.timerText,dateFormat:r.dateFormat,timezone:r.timezone,orderWithinText:r.orderWithinText}),e.jsxs("p",{children:[r.estimatedDeliveryText," ",e.jsx("span",{children:p?`${r.loadingText}`:`${r.showDateRange&&!f?D.toDateString()+" - "+new Date((new Date).setDate(D.getDate()+r.dateRange)).toDateString():D.toDateString()}`})]})]})})})}; //# sourceMappingURL=index.js.map