From e150eda61b76b6c030421719b9aa408baec99e58 Mon Sep 17 00:00:00 2001 From: Dominik Schilling Date: Wed, 31 Oct 2018 12:35:17 +0100 Subject: [PATCH 1/3] Create file blocks when dropping multiple files at once --- packages/block-library/src/file/index.js | 25 ++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/block-library/src/file/index.js b/packages/block-library/src/file/index.js index 7f26a4abc025e..725e73c3a9eb6 100644 --- a/packages/block-library/src/file/index.js +++ b/packages/block-library/src/file/index.js @@ -1,7 +1,7 @@ /** * External dependencies */ -import { includes } from 'lodash'; +import { includes, every } from 'lodash'; /** * WordPress dependencies @@ -77,20 +77,25 @@ export const settings = { from: [ { type: 'files', - isMatch: ( files ) => files.length === 1, + isMatch: ( files ) => { + return every( files, ( file ) => file.type.indexOf( 'image/' ) !== 0 && file.type.indexOf( 'audio/' ) !== 0 && file.type.indexOf( 'video/' ) !== 0 ); + }, // We define a lower priorty (higher number) than the default of 10. This // ensures that the File block is only created as a fallback. priority: 15, transform: ( files ) => { - const file = files[ 0 ]; - const blobURL = createBlobURL( file ); - - // File will be uploaded in componentDidMount() - return createBlock( 'core/file', { - href: blobURL, - fileName: file.name, - textLinkHref: blobURL, + const blocks = []; + + files.map( ( file ) => { + const blobURL = createBlobURL( file ); + blocks.push( createBlock( 'core/file', { + href: blobURL, + fileName: file.name, + textLinkHref: blobURL, + } ) ); } ); + + return blocks; }, }, { From a09ff91bf1de5febe335c4a2ff6ccc77b1e45e23 Mon Sep 17 00:00:00 2001 From: Dominik Schilling Date: Wed, 31 Oct 2018 13:30:17 +0100 Subject: [PATCH 2/3] Remove the check for file types as it has a higher priority --- packages/block-library/src/file/index.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/block-library/src/file/index.js b/packages/block-library/src/file/index.js index 725e73c3a9eb6..43471765187c8 100644 --- a/packages/block-library/src/file/index.js +++ b/packages/block-library/src/file/index.js @@ -1,7 +1,7 @@ /** * External dependencies */ -import { includes, every } from 'lodash'; +import { includes } from 'lodash'; /** * WordPress dependencies @@ -77,8 +77,8 @@ export const settings = { from: [ { type: 'files', - isMatch: ( files ) => { - return every( files, ( file ) => file.type.indexOf( 'image/' ) !== 0 && file.type.indexOf( 'audio/' ) !== 0 && file.type.indexOf( 'video/' ) !== 0 ); + isMatch( files ) { + return files.length > 0; }, // We define a lower priorty (higher number) than the default of 10. This // ensures that the File block is only created as a fallback. @@ -88,6 +88,8 @@ export const settings = { files.map( ( file ) => { const blobURL = createBlobURL( file ); + + // File will be uploaded in componentDidMount() blocks.push( createBlock( 'core/file', { href: blobURL, fileName: file.name, From edadef0fafa2609482c7d840cac867c2d8042cb1 Mon Sep 17 00:00:00 2001 From: Dominik Schilling Date: Thu, 1 Nov 2018 14:16:09 +0100 Subject: [PATCH 3/3] Add changelog entry --- packages/block-library/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/block-library/CHANGELOG.md b/packages/block-library/CHANGELOG.md index 8df197bb99195..39fbb90aa0c65 100644 --- a/packages/block-library/CHANGELOG.md +++ b/packages/block-library/CHANGELOG.md @@ -1,3 +1,9 @@ +## 2.1.8 (Unreleased) + +### Polish + +- File Block: Create file blocks when dropping multiple files at once. + ## 2.1.7 (2018-10-30) ## 2.1.6 (2018-10-30)