UNPKG

@lanaco/lnc-react-ui

Version:

React component library

43 lines (36 loc) 5.49 kB
"use strict";const t=require("react/jsx-runtime"),c=require("react"),K=require("./emotion-styled.browser.esm-DwHBgTPn.cjs"),j=require("./breakpoints-CcVm-gVm.cjs"),W=require("./Button.cjs"),l=require("./utils-BK6B_Y9X.cjs"),z=require("./useDetectMobile-DYV6V1yw.cjs"),G=require("./style-cJUZrJoG.cjs"),P=require("./index-BLapl_Sv.cjs"),V=require("./index-RrqW9QBJ.cjs"),H=require("./index-D8dqelzt.cjs"),J=K.styled.div` display: grid; grid-template-columns: ${n=>`repeat(${n.limit}, minmax(0, 1fr))`}; gap: 1.25rem; & .button-link { white-space: nowrap; } & .section__options { & button { &:focus { outline: none; outline-offset: 0; } } } @media ${j.down("M")} { grid-template-columns: repeat(6, minmax(0, 1fr)); } @media ${j.down("S")} { display: flex; gap: 1rem; overflow-x: auto; -webkit-overflow-scrolling: touch; ::-webkit-scrollbar { -webkit-appearance: none; } -ms-overflow-style: none; /* Internet Explorer 10+ */ scrollbar-width: none; /* Firefox */ &::-webkit-scrollbar { display: none; /* Safari and Chrome */ } } `,w=c.memo(P.DetailedProductCard),X=c.forwardRef((n,L)=>{const{icon:d,title:F,buttonLink:u,items:i,buttonText:m,limit:s=4,onSelectCard:p=()=>{},onButtonAction:D=()=>{},isLoading:g=!1,getImage:b=()=>{},negotiableText:S,freeText:k,options:a=[],isLoadingOptions:O=!1,selectedOption:T,onSelectOption:U=()=>{},onRemoveOption:M=()=>{},allOptionsEnabled:B=!1,allOptionsLabel:R="All",onSelectAllOptions:_=()=>{},optionLabel:$="label",optionValue:E="value",optionCode:A="code",sponsoredText:y,onBookmark:h=()=>{},actionComponent:f,componentName:C,LinkComponent:N,urgentText:q}=n,v=z.useDetectMobile(),Q=c.useMemo(()=>t.jsx(t.Fragment,{children:v===!0?i==null?void 0:i.map((e,o)=>t.jsx(w,{name:e==null?void 0:e.name,price:e==null?void 0:e.price,sellingPrice:e==null?void 0:e.sellingPrice,currency:e==null?void 0:e.currency,image:e==null?void 0:e.image,sellerUuid:e==null?void 0:e.sellerUuid,uuid:e==null?void 0:e.uuid,sponsored:e==null?void 0:e.sponsored,imageComponent:e==null?void 0:e.imageComponent,nameSlug:e==null?void 0:e.nameSlug,onSelectCard:(I,r)=>p({uuid:e==null?void 0:e.uuid,nameSlug:e==null?void 0:e.nameSlug,cardRef:r}),sellerName:e==null?void 0:e.sellerName,imageUrl:b(e==null?void 0:e.image,e==null?void 0:e.uuid,e==null?void 0:e.sellerUuid)||null,isFree:e==null?void 0:e.isFree,isNegotiable:e==null?void 0:e.isNegotiable,negotiableText:S,freeText:k,tags:e==null?void 0:e.tags,categoryCode:e==null?void 0:e.categoryCode,condition:e==null?void 0:e.condition,quantity:e==null?void 0:e.quantity,hasQuantities:e==null?void 0:e.hasQuantities,status:e==null?void 0:e.status,trade:e==null?void 0:e.trade,forCart:e==null?void 0:e.forCart,sponsoredText:y,onBookmark:h,actionComponent:f,bookmarked:e==null?void 0:e.bookmarked,bookmarkLists:e==null?void 0:e.bookmarkLists,metadata:{accessor:e==null?void 0:e.accessor,name:C},LinkComponent:N,activeSalesPackages:e==null?void 0:e.activeSalesPackages,urgentText:q,hasFreeShipping:e==null?void 0:e.hasFreeShipping},o)):i==null?void 0:i.slice(0,s).map((e,o)=>t.jsx(w,{name:e==null?void 0:e.name,price:e==null?void 0:e.price,sellingPrice:e==null?void 0:e.sellingPrice,currency:e==null?void 0:e.currency,image:e==null?void 0:e.image,sellerUuid:e==null?void 0:e.sellerUuid,uuid:e==null?void 0:e.uuid,location:e==null?void 0:e.location,sponsored:e==null?void 0:e.sponsored,imageComponent:e==null?void 0:e.imageComponent,onSelectCard:(I,r)=>p({uuid:e==null?void 0:e.uuid,nameSlug:e==null?void 0:e.nameSlug,cardRef:r}),nameSlug:e==null?void 0:e.nameSlug,imageUrl:b(e==null?void 0:e.image,e==null?void 0:e.uuid,e==null?void 0:e.sellerUuid)||null,isFree:e==null?void 0:e.isFree,isNegotiable:e==null?void 0:e.isNegotiable,negotiableText:S,freeText:k,tags:e==null?void 0:e.tags,categoryCode:e==null?void 0:e.categoryCode,condition:e==null?void 0:e.condition,quantity:e==null?void 0:e.quantity,hasQuantities:e==null?void 0:e.hasQuantities,status:e==null?void 0:e.status,trade:e==null?void 0:e.trade,forCart:e==null?void 0:e.forCart,sponsoredText:y,onBookmark:h,actionComponent:f,bookmarked:e==null?void 0:e.bookmarked,bookmarkLists:e==null?void 0:e.bookmarkLists,metadata:{accessor:e==null?void 0:e.accessor,name:C},sellerName:e==null?void 0:e.sellerName,LinkComponent:N,activeSalesPackages:e==null?void 0:e.activeSalesPackages,urgentText:q,hasFreeShipping:e==null?void 0:e.hasFreeShipping},o))}),[i,v,s]);return t.jsxs(G.TitleWithOptionsSectionWrapper,{ref:L,className:"lp-section lp-detailed-products-section",children:[t.jsxs("div",{className:"regular-title",children:[t.jsxs("div",{className:"regular-title-text",children:[l.isDefinedNotEmptyString(d)&&t.jsx("i",{className:d}),t.jsx("span",{children:F})]}),l.isDefinedNotEmptyString(u)&&l.isDefinedNotEmptyString(m)&&!g&&t.jsx(W,{type:"button",btnType:"tinted",color:"neutral",onClick:e=>{var o;(o=e==null?void 0:e.target)==null||o.blur(),D(u)},borderRadius:"curved",className:"button-link",children:m})]}),t.jsx(H.SuspenseSelectBar,{isLoading:O,children:a&&(a==null?void 0:a.length)>0&&t.jsx(V.SelectBar,{items:a,selectedIds:T,onRemove:M,onSelect:U,allButton:B,onSelectAll:_,labelKey:$,valueKey:E,codeKey:A,noMargin:!0,productsToolbarName:R,noGradient:!0,className:"section__options"})}),t.jsx(P.SuspenseDetailedProductCard,{isLoading:g,keyPrefix:"detailed-products-skeleton",children:t.jsx(J,{limit:s,children:Q})})]})});module.exports=X;