From 20a834ade74da87671f4db2a1b19d27d5246cb45 Mon Sep 17 00:00:00 2001 From: David Calhoun Date: Thu, 22 Feb 2024 10:51:43 -0500 Subject: [PATCH 1/3] fix: Media & Text block displays video upload errors When the paused state and messaging was implemented for image uploads, it was inadvertently applied to Media & Text blocks. This resulted in a lack of any failed upload messages when a video was attached to the Media & Text block. --- .../block-library/src/media-text/media-container.native.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/block-library/src/media-text/media-container.native.js b/packages/block-library/src/media-text/media-container.native.js index ec6e3999807c8..a337cecc2c489 100644 --- a/packages/block-library/src/media-text/media-container.native.js +++ b/packages/block-library/src/media-text/media-container.native.js @@ -341,7 +341,9 @@ class MediaContainer extends Component { { getMediaOptions() } Date: Thu, 22 Feb 2024 11:52:38 -0500 Subject: [PATCH 2/3] test: Media & Text block displays video upload errors --- .../src/components/index.native.js | 1 + .../src/media-text/test/edit.native.js | 58 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 packages/block-library/src/media-text/test/edit.native.js diff --git a/packages/block-editor/src/components/index.native.js b/packages/block-editor/src/components/index.native.js index ac4b45af3609c..debf5a074a07a 100644 --- a/packages/block-editor/src/components/index.native.js +++ b/packages/block-editor/src/components/index.native.js @@ -49,6 +49,7 @@ export { default as MediaUploadProgress } from './media-upload-progress'; export { MEDIA_UPLOAD_STATE_UPLOADING, MEDIA_UPLOAD_STATE_SUCCEEDED, + MEDIA_UPLOAD_STATE_PAUSED, MEDIA_UPLOAD_STATE_FAILED, MEDIA_UPLOAD_STATE_RESET, } from './media-upload-progress/constants'; diff --git a/packages/block-library/src/media-text/test/edit.native.js b/packages/block-library/src/media-text/test/edit.native.js new file mode 100644 index 0000000000000..230005adf8768 --- /dev/null +++ b/packages/block-library/src/media-text/test/edit.native.js @@ -0,0 +1,58 @@ +/** + * External dependencies + */ +import { + addBlock, + fireEvent, + initializeEditor, + screen, + setupCoreBlocks, +} from 'test/helpers'; + +/** + * WordPress dependencies + */ +import { + requestMediaPicker, + sendMediaUpload, + subscribeMediaUpload, +} from '@wordpress/react-native-bridge'; +import { MEDIA_UPLOAD_STATE_PAUSED } from '@wordpress/block-editor'; + +let uploadCallBack; +subscribeMediaUpload.mockImplementation( ( callback ) => { + uploadCallBack = callback; +} ); +sendMediaUpload.mockImplementation( ( payload ) => { + uploadCallBack( payload ); +} ); + +setupCoreBlocks( [ 'core/media-text' ] ); + +describe( 'Media & Text block edit', () => { + it( 'should display an error message for failed video uploads', async () => { + requestMediaPicker.mockImplementation( + ( source, filter, multiple, callback ) => { + callback( { + id: 1, + url: 'file://video.mp4', + type: 'video', + } ); + } + ); + await initializeEditor(); + await addBlock( screen, 'Media & Text' ); + fireEvent.press( screen.getByText( 'Add image or video' ) ); + fireEvent.press( screen.getByText( 'Choose from device' ) ); + + sendMediaUpload( { + mediaId: 1, + state: MEDIA_UPLOAD_STATE_PAUSED, + progress: 0, + } ); + + expect( + screen.getByText( 'Failed to insert media.\nTap for more info.' ) + ).toBeVisible(); + } ); +} ); From 294646cce95903ceaad2a77dceb00230a708c643 Mon Sep 17 00:00:00 2001 From: David Calhoun Date: Thu, 22 Feb 2024 18:59:51 -0500 Subject: [PATCH 3/3] docs: Add change log entry --- packages/react-native-editor/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-native-editor/CHANGELOG.md b/packages/react-native-editor/CHANGELOG.md index ecd7457c3f1ed..2aa15c9027114 100644 --- a/packages/react-native-editor/CHANGELOG.md +++ b/packages/react-native-editor/CHANGELOG.md @@ -11,6 +11,7 @@ For each user feature we should also add a importance categorization label to i ## Unreleased - [*] Prevent crash when autoscrolling to blocks [#59110] +- [*] Media & Text blocks correctly show an error message when the attached video upload fails [#59288] ## 1.112.0 - [*] [internal] Upgrade React Native to version 0.71.15 [#57667]