UNPKG

@lanaco/lnc-react-ui

Version:

React component library

147 lines (126 loc) 5.19 kB
"use strict";const r=require("react/jsx-runtime"),l=require("react"),x=require("./Icon.cjs"),o=require("./utils-BK6B_Y9X.cjs"),$=require("./emotion-styled.browser.esm-DwHBgTPn.cjs"),R=require("./breakpoints-CcVm-gVm.cjs"),d=require("./ShopAvatar-CV3lj34D.cjs"),k=require("./index-DOkcmaFO.cjs"),D=$.styled.a` text-decoration: none; color: var(--gray-950); display: flex; flex-direction: column; align-items: center; border-radius: 1.25rem; border: 1px solid var(--neutral-9508, rgba(20, 22, 26, 0.08)); background: var(--Lanaco-Gray-white, #fff); width: 100%; height: 100%; justify-content: space-between; /* drop-shadow-sm */ box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.05); &:hover { cursor: pointer; } & .wrapper__content { display: flex; padding: 1.25rem; flex-direction: column; align-items: center; gap: 0.75rem; align-self: strech; & .wrapper__image { object-fit: cover; aspect-ratio: 1 / 1; max-height: 4rem; border-radius: 999px; } } & .wrapper_stars { display: flex; } & .wrapper__info { display: flex; flex-direction: column; align-items: center; gap: 0.375rem; & .wrapper__title { display: flex; align-items: center; gap: 0.75rem; color: var(--gray-950, #14161a); font-size: 1rem; font-style: normal; font-weight: 500; line-height: 1.5rem; letter-spacing: -0.0112rem; ${o.truncateTextInRows(2)} text-align: center; } & .wrapper__subtitle { color: var(--gray-600, #676e79); text-align: center; font-size: 0.875rem; font-style: normal; font-weight: 400; line-height: 1.25rem; letter-spacing: -0.0056rem; ${o.truncateTextInRows(2)} } & .wrapper__badges { } & .wrapper__rating { display: flex; align-items: center; gap: 0.25rem; & .wrapper__star { & i { color: var(--warning-500); } & .gold-star { & i { color: var(--gray-500); } } } & .wrapper__review-count { color: var(--gray-600, #676e79); font-size: 0.75rem; font-style: normal; font-weight: 400; line-height: 1rem; letter-spacing: 0.01px; } } } & .wrapper__products { display: flex; align-items: flex-start; column-gap: 1px; width: 100%; & .wrapper__product { overflow: hidden; cursor: pointer; width: 100%; max-height: 5.75rem; &:first-child { border-radius: 0 0 0 1.25rem; } &:last-child { border-radius: 0 0 1.25rem 0; } &:only-child { border-radius: 0 0 1.25rem 1.25rem; } & .product__image { width: 100%; aspect-ratio: 1 / 1; height: calc(100% / 3); max-height: 5.75rem; object-fit: cover; } } } @media ${R.down("S")} { max-width: 10rem; min-width: 10rem; & .wrapper__content { & .wrapper__image { max-height: 3rem; } } } `,E=l.forwardRef(({uuid:c,image:p,imageComponent:g,title:f,subtitle:w,badges:v,rating:y,reviewCount:m,products:t,onSelectCard:j=()=>{},getProductImage:b=()=>{},canAcceptPayments:N,hideProducts:u=!1,showRating:S=!0,metadata:i={},LinkComponent:_},I)=>{const q=_||"a",s=l.useRef(),h=l.useRef();return l.useEffect(()=>{var n;const e=a=>{a.target.src=d.DefaultShopImage,a.onerror=null};return(n=s==null?void 0:s.current)==null||n.addEventListener("error",e),()=>{var a;(a=s==null?void 0:s.current)==null||a.removeEventListener("error",e)}},[]),r.jsxs(D,{ref:h,name:i==null?void 0:i.name,"data-accessor":i==null?void 0:i.accessor,onClick:e=>j(e,h),as:q,..._?{to:`/shop/${c}`}:{href:`/shop/${c}`},children:[r.jsxs("div",{className:"wrapper__content",children:[o.isDefined(g)?g:p?r.jsx("img",{ref:s,src:p,className:"wrapper__image"}):r.jsx("img",{src:d.DefaultShopImage,className:"wrapper__image"}),r.jsxs("div",{className:"wrapper__info",children:[r.jsxs("div",{className:"wrapper__title",children:[f," ",N&&r.jsx(x,{color:"secondary",icon:"credit-card",className:"card"})]}),r.jsx("div",{className:"wrapper__subtitle",children:w}),v&&r.jsx("div",{className:"wrapper__badges"}),S&&r.jsxs("div",{className:"wrapper__rating",children:[r.jsx("div",{className:"wrapper_stars",children:[...Array(5).keys()].map((e,n)=>r.jsx(x,{icon:" mng-lnc-star--filled",className:`wrapper__star ${e>=y?"gold-star":""}`},`shop-card-rating-star__${n+1}`))}),r.jsxs("div",{className:"wrapper__review-count",children:["(",m==null?void 0:m.toLocaleString(),")"]})]})]})]}),u!==!0&&r.jsx("div",{className:"wrapper__products",children:t&&(t==null?void 0:t.map((e,n)=>r.jsx(l.Fragment,{children:r.jsx("div",{className:"wrapper__product",onClick:()=>{var a;return(a=e==null?void 0:e.onSelectProduct)==null?void 0:a.call(e,e==null?void 0:e.uuid)},children:o.isDefined(e==null?void 0:e.imageComponent)?e==null?void 0:e.imageComponent:r.jsx(k.ProductImageWrapper,{src:b(e==null?void 0:e.image,e==null?void 0:e.uuid,c),className:"product__image"})})},n)))})]})});exports.ShopCard=E;