= React.memo((props) => {
{
- if (inputElement.current != null) {
- inputElement.current.click();
- } else {
- console.error("Input element is missing in upload wrapper");
- }
+ uploadPlugin.onUpload(null);
}}
>
{props.children}
-
- {
- if (props.onChange) {
- const fileList = Array.from(e.target.files); // copy to array before resetting
-
- e.target.files = null; // without resetting, not able to trigger a change after failed
-
- if (fileList.length > 0) {
- const files: File[] = [];
-
- fileList.forEach((file) => {
- const fileExtension = file.name.split(".").pop();
- if (props.acceptedFileTypes && !props.acceptedFileTypes.includes(fileExtension)) {
- if (props.onError) {
- props.onError(EUploadError.unsupportedFileType);
- }
- message.error(interpolateLocale(uploadingLocales.unsupportedFileType, { type: props.acceptedFileTypes.join(", ") }));
- return;
- }
- files.push(file);
- });
-
- props.onChange(files);
- }
- }
- }}
- />
+ {uploadPlugin.ui}
);
});
diff --git a/src/index.ts b/src/index.ts
index f223938..a29b230 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,6 +1,6 @@
export { default as BaseUpload } from "./component/base-upload";
export { default as BaseDisplay } from "./component/base-display";
-export { default as UploadWrapper } from "./component/upload-wrapper";
+export { default as UploadWrapper, useUploadTrigger } from "./component/upload-wrapper";
export { default as Dropzone } from "./component/dropzone";
export { uploadByUrl, getDownloadUrl, uploadSign } from "./api";