diff --git a/projects/packages/videopress/changelog/update-videopress-fix-replace-when-uploading-video-issue b/projects/packages/videopress/changelog/update-videopress-fix-replace-when-uploading-video-issue new file mode 100644 index 000000000000..9ddabc42646b --- /dev/null +++ b/projects/packages/videopress/changelog/update-videopress-fix-replace-when-uploading-video-issue @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +VideoPress: fix replace video by uploading a new file issue diff --git a/projects/packages/videopress/package.json b/projects/packages/videopress/package.json index b92bf0739957..63dca9927d52 100644 --- a/projects/packages/videopress/package.json +++ b/projects/packages/videopress/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@automattic/jetpack-videopress", - "version": "0.10.4", + "version": "0.10.5-alpha", "description": "VideoPress package", "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/packages/videopress/#readme", "bugs": { diff --git a/projects/packages/videopress/src/class-package-version.php b/projects/packages/videopress/src/class-package-version.php index c2e65fd9b58d..f752770ee70b 100644 --- a/projects/packages/videopress/src/class-package-version.php +++ b/projects/packages/videopress/src/class-package-version.php @@ -11,7 +11,7 @@ * The Package_Version class. */ class Package_Version { - const PACKAGE_VERSION = '0.10.4'; + const PACKAGE_VERSION = '0.10.5-alpha'; const PACKAGE_SLUG = 'videopress'; diff --git a/projects/packages/videopress/src/client/block-editor/blocks/video/components/videopress-uploader/uploader-progress.js b/projects/packages/videopress/src/client/block-editor/blocks/video/components/videopress-uploader/uploader-progress.js index 653ef869d4eb..67b83b493be9 100644 --- a/projects/packages/videopress/src/client/block-editor/blocks/video/components/videopress-uploader/uploader-progress.js +++ b/projects/packages/videopress/src/client/block-editor/blocks/video/components/videopress-uploader/uploader-progress.js @@ -113,8 +113,7 @@ const usePosterAndTitleUpdate = ( { setAttributes, videoData, onDone } ) => { Promise.allSettled( updates ).then( () => { setIsFinishingUpdate( false ); - setAttributes( videoData ); - onDone(); + onDone( videoData ); } ); }; diff --git a/projects/packages/videopress/src/client/block-editor/blocks/video/edit.tsx b/projects/packages/videopress/src/client/block-editor/blocks/video/edit.tsx index 71fa86285ea1..7a9c9faaaff3 100644 --- a/projects/packages/videopress/src/client/block-editor/blocks/video/edit.tsx +++ b/projects/packages/videopress/src/client/block-editor/blocks/video/edit.tsx @@ -390,12 +390,23 @@ export default function VideoPressEdit( { // Render uploading block view if ( isUploadingFile ) { - const handleDoneUpload = () => { + const handleDoneUpload = newVideoData => { setIsUploadingFile( false ); if ( isReplacingFile.isReplacing ) { + const newBlockAttributes = { + ...attributes, + ...newVideoData, + }; + + // Delete attributes that are not needed. + delete newBlockAttributes.poster; + setIsReplacingFile( { isReplacing: false, prevAttrs: {} } ); - replaceBlock( clientId, createBlock( 'videopress/video', { ...attributes } ) ); + replaceBlock( clientId, createBlock( 'videopress/video', newBlockAttributes ) ); + return; } + + setAttributes( { id: newVideoData.id, guid: newVideoData.guid, title: newVideoData.title } ); }; return ( @@ -498,8 +509,12 @@ export default function VideoPressEdit( { setFileToUpload( media ); } } onSelectVideoFromLibrary={ media => { - const mediaGuid = media.videopress_guid?.[ 0 ] ?? media.videopress_guid; + // Depending on the endpoint, `videopress_guid` can be an array or a string. + const mediaGuid = Array.isArray( media.videopress_guid ) + ? media.videopress_guid[ 0 ] + : media.videopress_guid; if ( ! mediaGuid ) { + debug( 'No media guid provided' ); return; }