UNPKG

@anoki/fse-ui

Version:

FSE UI components library

3 lines (2 loc) 3.51 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./components/ui/CardOpeningHours/CardOpeningHours.css');const n=require("./index.cjs237.js");;/* empty css */const L=require("./index.cjs238.js"),r=require("react"),F=require("./index.cjs3.js"),C=require("./index.cjs61.js"),g=require("./index.cjs116.js"),ee=({title:K="Orari di apertura",titleTag:P="h1",openingHours:f,weekDaysMap:R,openLabel:a="Aperto",todayLabel:U="Oggi",closeLabel:u="Chiuso",open24Label:x="24 ore su 24",opensSoonLabel:O="Apre tra poco",opensAtLabel:T="Apre alle",opensTomorrowLabel:$="Apre domani",opensOnLabel:E="Apre",atLabel:N="alle",closesAtLabel:S="Chiude alle"})=>{const[z,B]=r.useState(null),[k,G]=r.useState(""),[J,l]=r.useState(""),[Q,D]=r.useState(""),[V,h]=r.useState(!1),[W,m]=r.useState(!1),[X,c]=r.useState(""),d=Object.values(R),p=Object.keys(R),Y=()=>F.DateTime.now().toFormat("HH:mm"),I=t=>{const[e,s]=t.split(":").map(Number);return e*60+s},H=r.useCallback(t=>t.from==="00:00"&&t.to==="00:00",[]),j=r.useCallback(t=>t.some(H),[H]),Z=(t,e)=>{for(const{from:s,to:o}of t)if(e>=s&&e<=o)return{open:!0,closingTime:o};return{open:!1,closingTime:""}},_=(t,e)=>{for(const{from:s}of t)if(s>e)return s;return""},q=r.useCallback((t,e)=>{if(!t)return!1;const s=I(t),o=I(e),i=s-o;return i>0&&i<=60},[]),A=r.useCallback(t=>{for(let e=1;e<=7;e++){const s=(t+e)%7,o=p[s],i=f[o];if(i&&i.length>0)return{dayName:d[s].toLowerCase(),isTomorrow:e===1}}return null},[p,f,d]),v=r.useMemo(()=>t=>t.length===0?u:j(t)?`${a} ${x}`:t.map(({from:e,to:s})=>`${e} - ${s}`).join(" | "),[u,j,x,a]);return r.useEffect(()=>{const e=F.DateTime.now().weekday-1;B(e),G(d[e]||"");const s=p[e],o=f[s];if(!o)return;const i=Y();if(j(o)){l(a),c(` | ${x}`),h(!0),m(!1),D(`${a} ${x}`);return}const{open:b,closingTime:M}=Z(o,i);if(b)l(a),c(M?` | ${S} ${M}`:""),h(!0),m(!1);else{const y=_(o,i);if(h(!1),y)q(y,i)?(l(O),c(` | ${N} ${y}`),m(!0)):(l(u),c(` | ${T} ${y}`),m(!1));else{l(u),m(!1);const w=A(e);c(w?w.isTomorrow?` | ${$}`:` | ${E} ${w.dayName}`:"")}}D(v(o))},[N,q,u,S,v,A,j,x,a,f,T,E,O,$,d,p]),n.jsxRuntimeExports.jsxs(C.Col,{fs:"6",fw:"semibold",className:"ui-card-opening rounded shadow text-slate-28",children:[n.jsxRuntimeExports.jsxs(C.Col,{as:"header",className:"ui-card-header",children:[n.jsxRuntimeExports.jsx(P,{className:"text-slate-20 fw-semibold fs-4",children:K}),n.jsxRuntimeExports.jsxs(g.Row,{justifyContent:"space-between",alignItems:"center",style:{backgroundColor:"#F7F2FC"},py:"x16",px:"x24",fw:"bold",fs:"6",className:"rounded",children:[n.jsxRuntimeExports.jsxs("p",{className:"text-slate-28",children:[U,", ",k]}),n.jsxRuntimeExports.jsxs("p",{children:[n.jsxRuntimeExports.jsx("span",{className:V?"text-success":W?"text-warning":"text-error",children:J}),n.jsxRuntimeExports.jsx("span",{className:"fw-regular text-grey-black",children:X})]})]})]}),n.jsxRuntimeExports.jsxs(C.Col,{as:"main",pt:"x32",gap:"x24",children:[n.jsxRuntimeExports.jsx(g.Row,{justifyContent:"space-around",className:"ui-weekdays-container",children:d.map((t,e)=>n.jsxRuntimeExports.jsx(g.Row,{justifyContent:"center",alignItems:"center",className:L.clsx(z===e?"active-day text-primary":"","flex-1"),children:t.charAt(0).toUpperCase()},e))}),n.jsxRuntimeExports.jsxs(g.Row,{justifyContent:"space-between",alignItems:"center",fw:"regular",children:[n.jsxRuntimeExports.jsx("p",{children:k}),n.jsxRuntimeExports.jsx("p",{children:Q})]})]})]})};exports.CardOpeningHours=ee; //# sourceMappingURL=index.cjs50.js.map