UNPKG

@ebay/ui-core-react

Version:

Skin components build off React

2 lines (1 loc) 4.26 kB
"use strict";const O=require("./tslib.es6-BW4cJBUu.js"),e=require("react"),C=require("classnames"),j=require("./utils-C9NL3q0j.js"),g=require("./icon-button-BeoRawG2.js"),L=require("./menu-button-BswGbjvt.js"),x=require("./menu-D-5zAn4_.js"),U=require("./icons/ebay-icon-close-16/index.js"),R=require("./icons/ebay-icon-delete-16/index.js"),A=require("./progress-spinner-CYHN2qj2.js"),D=require("./icons/ebay-icon-file-24/index.js"),W=require("./icons/ebay-icon-play-16/index.js"),z=({status:t,menuActions:n,onMenuAction:r,deleteText:o,onCancel:E,onDelete:a,onAction:c,a11yCancelUploadText:y,a11yMenuButtonText:m,action:l})=>{const b=(i,u)=>{var d;if(u){const s=(d=u.checked)===null||d===void 0?void 0:d[0],p=n&&s!==void 0&&s in n?n[s].event:null;p&&r?r(i,Object.assign(Object.assign({},u),{eventName:p})):a&&a(i)}};return t==="uploading"?e.createElement(g.EbayIconButton,{"aria-label":y,onClick:E,className:"file-preview-card__action",icon:e.createElement(U.EbayIconClose16,null)}):n?.length?e.createElement(e.Fragment,null,e.createElement(L.EbayMenuButton,{variant:"overflow",className:"file-preview-card__action",a11yText:m,onSelect:b},n.map(i=>e.createElement(x.EbayMenuItem,{value:i.event,key:i.label},i.label)),e.createElement(x.EbayMenuItem,{key:"delete",value:"delete"},o))):l?.props&&l.props.icon&&l.props["aria-label"]?e.createElement(g.EbayIconButton,Object.assign({onClick:c,className:C("file-preview-card__action",l.props.className)},l.props)):o?e.createElement(g.EbayIconButton,{"aria-label":o,className:"file-preview-card__action",icon:e.createElement(R.EbayIconDelete16,null),onClick:a}):e.createElement(e.Fragment,null)},F=({file:t,status:n,seeMore:r})=>{if(n==="uploading")return e.createElement(A.EbayProgressSpinner,{className:"file-preview-card__asset"});switch(t?.type){case"video":return e.createElement("video",{className:"file-preview-card__asset",src:t.src});case"image":return e.createElement("img",{className:C("file-preview-card__asset",{"file-preview-card__asset--fade":r&&r>0}),src:t?.src,alt:t?.name});default:return e.createElement(D.EbayIconFile24,{className:"file-preview-card__asset"})}},G=({file:t,infoText:n})=>t&&t.type!=="image"?e.createElement("div",{className:"file-preview-card__info"},t.type==="video"&&e.createElement(W.EbayIconPlay16,{className:"file-preview-card__video-icon"}),n||t.name.substring(t.name.lastIndexOf(".")+1).toUpperCase()):e.createElement(e.Fragment,null),I=()=>null,H=t=>{var{a11yCancelUploadText:n,a11yExternalLinkText:r,status:o,as:E="div",file:a,seeMore:c,deleteText:y,footerTitle:m,footerSubtitle:l,a11ySeeMoreText:b,menuActions:i,a11yMenuButtonText:u,infoText:d,href:s,onCancel:p,onDelete:M,onMenuAction:T,onSeeMore:q,onAction:h,className:k,children:S}=t,B=O.__rest(t,["a11yCancelUploadText","a11yExternalLinkText","status","as","file","seeMore","deleteText","footerTitle","footerSubtitle","a11ySeeMoreText","menuActions","a11yMenuButtonText","infoText","href","onCancel","onDelete","onMenuAction","onSeeMore","onAction","className","children"]);const P=j.findComponent(S,I),f=e.useMemo(()=>{var _,w;if(!a)return;let N=a,v;return!((_=a?.type)===null||_===void 0)&&_.startsWith("image")?v="image":!((w=a?.type)===null||w===void 0)&&w.startsWith("video")&&(v="video"),a instanceof File&&(N={name:a.name,type:v,src:v?URL.createObjectURL(a):void 0}),N.type=v,N},[a]);return e.createElement(E,Object.assign({className:C("file-preview-card",k)},B),e.createElement("div",{className:"file-preview-card__body"},s?e.createElement("a",{href:s,target:r?"_blank":void 0,rel:r?"noopener noreferrer":void 0},e.createElement(F,{file:f,status:o,seeMore:c}),r&&e.createElement("span",{className:"clipped"}," - ",r)):e.createElement(F,{file:f,status:o,seeMore:c}),c&&c>0?e.createElement("button",{type:"button",className:"file-preview-card__see-more",onClick:q,"aria-label":b},e.createElement("span",null,"+",c)):e.createElement(z,{a11yCancelUploadText:n,a11yMenuButtonText:u,status:o,menuActions:i,onMenuAction:T,deleteText:y,onCancel:p,onDelete:M,onAction:h,action:P}),e.createElement(G,{file:f,infoText:d})),m&&e.createElement("div",{className:"file-preview-card__footer"},e.createElement("span",null,m),l&&e.createElement("span",null,l)))};exports.EbayFilePreviewCard=H;exports.EbayFilePreviewCardAction=I;