UNPKG

@uploadcare/react-widget

Version:

React File Uploader. React component with uploading from multiple sources

2 lines (1 loc) 3.09 kB
import{_ as n,a as e}from"./index-a5d285d0.mjs";import r,{useEffect as t,useRef as a,useImperativeHandle as o,useCallback as l}from"react";import u from"uploadcare-widget";import{u as c,a as i,b as d,d as s}from"./default-preview-url-callback-c8617386.mjs";import f from"react-fast-compare";var p=["id","name","value","onFileSelect","onChange","onDialogOpen","onDialogClose","onTabChange","apiRef","customTabs","validators","tabsCss","locale","localeTranslations","localePluralize","previewUrlCallback","metadataCallback"],C=function(u,C){var m=u.id,v=u.name,g=u.value,A=u.onFileSelect,L=u.onChange,E=u.onDialogOpen,O=u.onDialogClose,b=u.onTabChange,w=u.apiRef,D=u.customTabs,h=u.validators,U=u.tabsCss,R=u.locale,P=u.localeTranslations,T=u.localePluralize,_=u.previewUrlCallback,S=u.metadataCallback,k=n(u,p),I=a(null),j=a(null),x=a(null),y=c(A),N=c(L),z=c(E),F=c(O),W=c(b),Z=c(S),Q=c(_||s),q=function(n,e){var r=!0,t=a();t.current?r=!!(e&&t.current.deps&&f(e,t.current.deps)):t.current={deps:e,result:n()};var o=r?t.current:{deps:e,result:n()};return t.current=o,o.result}((function(){return k}),[k]);return i(D,C),d((function(){return R&&(window.UPLOADCARE_LOCALE=R),T&&(window.UPLOADCARE_LOCALE_PLURALIZE=T),P&&(window.UPLOADCARE_LOCALE_TRANSLATIONS=P),C.plugin((function(n){n.locale.rebuild({locale:R||null,localeTranslations:P||null,localePluralize:T||null})})),function(){R&&delete window.UPLOADCARE_LOCALE,T&&delete window.UPLOADCARE_LOCALE_PLURALIZE,P&&delete window.UPLOADCARE_LOCALE_TRANSLATIONS}}),[R,P,T]),t((function(){var n=I.current;j.current=C.Widget(n,e(e({},q),{},{metadataCallback:q.metadata?void 0:Z,previewUrlCallback:Q}));var r=n.nextSibling;return x.current&&j.current.value(x.current),function(){C.jQuery(n).removeData("uploadcareWidget"),r&&r.remove()}}),[C,q,Z,Q]),function(n,e){t((function(){if(null!=e){var r=n.current;return e.forEach((function(n){r.validators.push(n)})),function(){r.validators.length=0}}}),[n,e])}(j,h),t((function(){return j.current.onUploadComplete.add(N),j.current.onChange.add(y),function(){j.current.onUploadComplete.remove(N),j.current.onChange.remove(y)}}),[N,y,C,q]),t((function(){var n,e=function(e){(n=e).done(F).fail(F).progress(W),z(e)};return j.current.onDialogOpen.add(e),function(){j.current.onDialogOpen.remove(e),n&&n.reject()}}),[F,z,W,q]),t((function(){var n=[],e=function(e){n=e?e.files?e.files():[e]:[]};return j.current.onChange.add(e),function(){n.forEach((function(n){return n.cancel()})),j.current.onChange.remove(e)}}),[q]),t((function(){x.current!==g&&j.current.value(g),x.current=g}),[g]),t((function(){C&&U&&"string"==typeof U&&(0===U.indexOf("https://")?C.tabsCss.addUrl(U):C.tabsCss.addStyle(U))}),[C,U]),o(w,(function(){return{openDialog:function(){return j.current.openDialog()},reloadInfo:function(){return j.current.reloadInfo()},getInput:function(){return j.current.inputElement},value:function(n){return j.current.value(n)}}}),[]),l((function(){return r.createElement("input",{type:"hidden",ref:I,id:m,name:v})}),[m,v])},m=function(n){var e=C(n,u);return r.createElement(e,null)};export{m as default};