From f7f712fe763386941c8cced076246235f1cb5b18 Mon Sep 17 00:00:00 2001 From: CooperHash <2597905281@qq.com> Date: Mon, 8 Apr 2024 12:16:56 +0800 Subject: [PATCH] fix: use type to deciding whether to allow drag --- src/AjaxUploader.tsx | 7 +++++-- tests/uploader.spec.tsx | 11 +++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/AjaxUploader.tsx b/src/AjaxUploader.tsx index e88c291..851a163 100644 --- a/src/AjaxUploader.tsx +++ b/src/AjaxUploader.tsx @@ -280,6 +280,7 @@ class AjaxUploader extends Component { onMouseEnter, onMouseLeave, hasControlInside, + type, ...otherProps } = this.props; const cls = clsx({ @@ -298,8 +299,10 @@ class AjaxUploader extends Component { onKeyDown: openFileDialogOnClick ? this.onKeyDown : () => {}, onMouseEnter, onMouseLeave, - onDrop: this.onFileDrop, - onDragOver: this.onFileDrop, + ...(type === 'drag' ? { + onDrop: this.onFileDrop, + onDragOver: this.onFileDrop, + } : {}), tabIndex: hasControlInside ? undefined : '0', }; return ( diff --git a/tests/uploader.spec.tsx b/tests/uploader.spec.tsx index b7e060c..d4e6357 100644 --- a/tests/uploader.spec.tsx +++ b/tests/uploader.spec.tsx @@ -211,7 +211,8 @@ describe('uploader', () => { }); it('drag to upload', done => { - const input = uploader.container.querySelector('input')!; + const { container } = render(); + const input = container.querySelector('input')!; const files = [ { @@ -243,7 +244,8 @@ describe('uploader', () => { }); it('drag unaccepted type files to upload will not trigger onStart', done => { - const input = uploader.container.querySelector('input')!; + const { container } = render(); + const input = container.querySelector('input')!; const files = [ { name: 'success.jpg', @@ -266,7 +268,7 @@ describe('uploader', () => { }); it('drag files with multiple false', done => { - const { container } = render(); + const { container } = render(); const input = container.querySelector('input')!; const files = [ new File([''], 'success.png', { type: 'image/png' }), @@ -400,7 +402,8 @@ describe('uploader', () => { }); it('dragging and dropping a non file with a file does not prevent the file from being uploaded', done => { - const input = uploader.container.querySelector('input')!; + const { container } = render(); + const input = container.querySelector('input')!; const file = { name: 'success.png', };