UNPKG

@chief-editor/ui

Version:

UI Component for chief editor

1 lines 1.57 kB
import React,{useEffect}from"react";import{useLocale}from"@byte-design/config";import{classnames}from"@co-hooks/util";import{usePrefixCls}from"../../hooks";import{RcTrigger,RcUploadProvider,useCreateFileUpload}from"./rc-hooks";import{FileList}from"./components/FileList";export function Upload(e){var t=e.className,o=e.children,a=e.listType,r=void 0===a?"text":a,i=e.accept,l=void 0===i?"*/*":i,s=e.multiple,n=void 0!==s&&s,c=e.disabled,d=void 0!==c&&c,u=e.autoUpload,m=void 0===u||u,p=e.maxLength,f=void 0===p?-1:p,v=e.uploadUrl,g=e.name,h=e.headers,L=void 0===h?{}:h,E=e.withCredentials,R=void 0!==E&&E,C=e.value,U=void 0===C?[]:C,x=e.onChange,F=e.onValueChange,b=e.onError,w=classnames(t),y=classnames(usePrefixCls("upload-trigger",{disabled:d})),P=useLocale("upload.error.overflow-count"),k=useCreateFileUpload();return useEffect((function(){return x&&k.addListener("change",x),F&&k.addListener("value-change",F),b&&k.addListener("error",b),function(){x&&k.removeListener("change",x),F&&k.removeListener("value-change",F),b&&k.removeListener("error",b)}}),[x,F,b]),useEffect((function(){k.updateOptions({maxLength:f,autoUpload:m,uploadUrl:v,name:g,accept:l,multiple:n,headers:L,withCredentials:R,errors:{overflowCount:P}})}),[f,m,v,g,l,n,L,R]),useEffect((function(){k.destroy()}),[]),useEffect((function(){k.updateValue(U)}),[U]),React.createElement(RcUploadProvider,{upload:k},React.createElement("div",{className:w},React.createElement("span",{className:y},React.createElement(RcTrigger,{accept:l,multiple:n,disabled:d},o)),React.createElement(FileList,{type:r})))}