@uploadcare/react-widget
Version:
React File Uploader. React component with uploading from multiple sources
2 lines (1 loc) • 3.84 kB
JavaScript
;var e=require("./index-838bb604.cjs"),r=require("react"),t=require("uploadcare-widget"),n=require("./default-preview-url-callback-73cf76e2.cjs");require("react-fast-compare");var a=["value","apiRef","onTabChange","onChange","onProgress","customTabs","previewUrlCallback","metadataCallback"],l={height:"500px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},o=function(e,r){var t=[];return e&&(t=Array.isArray(e)?e:[e]),t};exports.default=function(i){var u=r.useState((function(){return"uploadcare-".concat(Date.now())})),c=e._slicedToArray(u,1)[0],s=r.useMemo((function(){return r.createElement("style",null,function(e){return"\n .".concat(e," .uploadcare--preview__done:not(.uploadcare-tab-effects--done),\n .").concat(e," .uploadcare--panel__done:not(.uploadcare-tab-effects--done) {\n display: none;\n }\n")}(c))}),[c]),f=function(t,l){var i=t.value,u=t.apiRef,c=t.onTabChange,s=t.onChange,f=t.onProgress,d=t.customTabs,C=t.previewUrlCallback,b=t.metadataCallback,m=e._objectWithoutProperties(t,a),p=m.tabsCss,v=m.locale,A=m.localeTranslations,L=m.localePluralize,w=r.useRef(null),y=r.useRef(null),_=n.useCommitedCallback(c),E=n.useCommitedCallback(s),T=n.useCommitedCallback(f),R=n.useCommitedCallback(b),g=n.useCommitedCallback(C||n.defaultPreviewUrlCallback);return n.useCustomTabs(d,l),n.useDeepEffect((function(){return v&&(window.UPLOADCARE_LOCALE=v),L&&(window.UPLOADCARE_LOCALE_PLURALIZE=L),A&&(window.UPLOADCARE_LOCALE_TRANSLATIONS=A),function(){v&&delete window.UPLOADCARE_LOCALE,L&&delete window.UPLOADCARE_LOCALE_PLURALIZE,A&&delete window.UPLOADCARE_LOCALE_TRANSLATIONS}}),[v,L,A]),r.useEffect((function(){l&&p&&"string"==typeof p&&(0===p.indexOf("https://")?l.tabsCss.addUrl(p):l.tabsCss.addStyle(p))}),[l,p]),r.useEffect((function(){var r=o(i);y.current&&y.current.reject(),y.current=l.openPanel(w.current,r,e._objectSpread2(e._objectSpread2({multipleMax:m.multiple?void 0:1},m),{},{multiple:!0,metadataCallback:m.metadata?void 0:R,previewUrlCallback:g}))}),[l].concat(e._toConsumableArray(Object.values(m)))),r.useEffect((function(){var e=y.current;e.progress(_);var r=function(){var e=y.current.fileColl.__items.map((function(e){return e.promise()}));E(e)},t=function(){var e=y.current.fileColl.lastProgresses();T(e)};return e.fileColl.anyProgressList.add(t),e.fileColl.anyDoneList.add(r),e.fileColl.anyFailList.add(r),e.fileColl.onRemove.add(r),e.fileColl.onReplace.add(r),e.fileColl.onSort.add(r),function(){var e=y.current;e.fileColl.anyProgressList.remove(t),e.fileColl.anyDoneList.remove(r),e.fileColl.anyFailList.remove(r),e.fileColl.onRemove.remove(r),e.fileColl.onReplace.remove(r),e.fileColl.onSort.remove(r)}}),[].concat(e._toConsumableArray(Object.values(m)),[_,E,T])),r.useImperativeHandle(u,(function(){return{onTabVisibility:function(e){return y.current.onTabVisibility(e)},hideTab:function(e){return y.current.hideTab(e)},showTab:function(e){return y.current.showTab(e)},switchTab:function(e){return y.current.switchTab(e)},addFiles:function(e){return y.current.addFiles(e)},isTabVisible:function(e){return y.current.isTabVisible(e)},getFileColl:function(){return y.current.fileColl},getRawDialogApi:function(){return y.current}}}),[]),r.useEffect((function(){return function(){return y.current&&y.current.reject()}}),[]),r.useEffect((function(){var r=!1;y.current.fileColl.clear();var n,a=o(i),u=e._createForOfIteratorHelper(a);try{for(u.s();!(n=u.n()).done;){var c=n.value;if("string"==typeof c&&c.includes("~")){l.loadFileGroup(c,t).then((function(e){if(!r){var t=e.files();y.current.addFiles(t)}}));break}y.current.fileColl.add(l.fileFrom("uploaded",c,t))}}catch(e){u.e(e)}finally{u.f()}return function(){r=!0}}),[i]),[w]}(i,t),d=e._slicedToArray(f,1)[0];return r.createElement("div",{id:i.id,className:c,style:l},s,r.createElement("div",{ref:d}))};