whole_func_string: function updateFeaturedImagePreview( image ) {
  		const currentImageId = select( 'core/editor' ).getEditedPostAttribute( 'featured_media' );
  		if ( currentImageId !== image.id ) {
  			return;
  		}
  		preloadImage( image.url ).then( () => {
  			const currentImage = select( 'core' ).getMedia( currentImageId );
  			const updatedImage = {
  				...currentImage,
  				media_details: {
  					height: image.height,
  					width: image.width,
  				},
  				source_url: image.url,
  			};
  			dispatch( 'core' ).receiveEntityRecords( 'root', 'media', [ updatedImage ], null, true );
  		} );
  	}
func_code_string: function updateFeaturedImagePreview( image ) {
  		const currentImageId = select( 'core/editor' ).getEditedPostAttribute( 'featured_media' );
  		if ( currentImageId !== image.id ) {
  			return;
  		}
  		preloadImage( image.url ).then( () => {
  			const currentImage = select( 'core' ).getMedia( currentImageId );
  			const updatedImage = {
  				...currentImage,
  				media_details: {
  					height: image.height,
  					width: image.width,
  				},
  				source_url: image.url,
  			};
  			dispatch( 'core' ).receiveEntityRecords( 'root', 'media', [ updatedImage ], null, true );
  		} );
  	}
func_documentation_string: To update the featured image preview we need to manually modify the image in the `core` state. Though, there is no direct mechanism to also invalidate its cache and re-render the preview. As a workaround, we call `receiveEntityRecords`, normally used to update the state after a fetch, which has a handy `invalidateCache` parameter that does exactly what we need.