diff --git a/package-lock.json b/package-lock.json index 5bb2faf..ab67d5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@github/file-attachment-element", - "version": "3.0.0", + "version": "3.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@github/file-attachment-element", - "version": "3.0.0", + "version": "3.0.1", "license": "MIT", "devDependencies": { "@github/prettier-config": "0.0.4", diff --git a/package.json b/package.json index 0db9814..a3ccf9a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@github/file-attachment-element", - "version": "3.0.0", + "version": "3.0.1", "description": "Attach files via drag and drop or file input.", "main": "dist/index.umd.js", "module": "dist/index.js", diff --git a/src/file-attachment-element.ts b/src/file-attachment-element.ts index 286b0af..112cd18 100644 --- a/src/file-attachment-element.ts +++ b/src/file-attachment-element.ts @@ -116,7 +116,7 @@ const images = /^image\/(gif|png|jpeg)$/ function pastedFile(items: DataTransferItemList): File | null { for (const item of items) { - if (images.test(item.type)) { + if (item.kind === 'file' && images.test(item.type)) { return item.getAsFile() } } diff --git a/test/test.js b/test/test.js index 1b27583..3e7341e 100644 --- a/test/test.js +++ b/test/test.js @@ -172,6 +172,20 @@ describe('file-attachment', function () { assert.equal(dragEvent, event) assert.equal(true, event.defaultPrevented) }) + + it('attaches the correct file when browser sends multiple data transfer items with image as type', async function () { + const listener = once('file-attachment-accepted') + + const dataTransfer = new DataTransfer() + const file = new File(['hubot'], 'test.png', {type: 'image/png'}) + dataTransfer.items.add('some string', 'image/jpeg') + dataTransfer.items.add(file) + const dropEvent = new ClipboardEvent('paste', {bubbles: true, clipboardData: dataTransfer}) + fileAttachment.dispatchEvent(dropEvent) + + const event = await listener + assert.equal('test.png', event.detail.attachments[0].file.name) + }) }) })