-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mobile Stories block (part2: on done) #25771
Mobile Stories block (part2: on done) #25771
Conversation
…ceive save progress
… int, and removed serverMediaId params as these don't apply while saving locally
…ATE_* events to MEDIA_SAVE_STATE_* where appropriate
…ve progress updates
…signed to a mediaFile in a Story block
…id strict comparison to fail
Size Change: 0 B Total Size: 1.19 MB ℹ️ View Unchanged
|
…ies-block-mobile-on-done
StoryUpdateProgress | ||
=================== | ||
|
||
`StoryUpdateProgress` shows a progress bar while the media files associated with a Story block are being saved and uploaded |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same than what I mentioned here.
It's possible that this component could give us troubles, since it's defined on the gutenberg
repo but used only on a jetpack
block and referring to a jetpack/wpcom feature (Stories).
What I would recommend in this case is to make all required bridge methods generic, and move this component to Jetpack.
Pinging @hypest and @maxme to get their opinion, since this would be a bigger refactor.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed elsewhere with @etoledom - I'll make this component generic given it may be used on other blocks containing a collection of media in the future, and that will solve this situation 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in the set of PRs mentioned / starting with this #26005
…ies-block-mobile-on-done
packages/block-editor/src/components/story-update-progress/README.md
Outdated
Show resolved
Hide resolved
packages/block-editor/src/components/story-update-progress/README.md
Outdated
Show resolved
Hide resolved
@@ -49,11 +49,13 @@ | |||
|
|||
private static final String MAP_KEY_UPDATE_HTML = "html"; | |||
private static final String MAP_KEY_UPDATE_TITLE = "title"; | |||
public static final String MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_NEW_ID = "newId"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NitPick :) just noticed this while glancing through 😅
public static final String MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_NEW_ID = "newId"; | |
public static final String MAP_KEY_MEDIA_FILE_UPLOAD_MEDIA_NEW_ID = "newMediaId"; |
packages/block-editor/src/components/story-update-progress/README.md
Outdated
Show resolved
Hide resolved
packages/block-editor/src/components/story-update-progress/index.native.js
Outdated
Show resolved
Hide resolved
…DME.md Co-authored-by: Joel Dean <[email protected]>
…DME.md Co-authored-by: Joel Dean <[email protected]>
* renames for generic media files collection block and BlockMediaUpdateProgres * referencing the right props method in finishMediaSaveWithFailure * mistaken renames of parameters in bridge methods * renamed more abstract/generic method names requestMediaFilesEditorLoad * removed extra whtie space * renamed argument type
finished reviewing in #26005 👍 so this one is good to merge. Merging 👍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚢
* updated initial example html content file with story block * adding method requestStoryCreatorLoad() to the bridge * added new interface OnStoryCreatorRequestListener * passing mediaFiles and blockId over the bridge in requestStoryCreatorLoad() * prettier fix * added gray-700 color, missing if not after retiring and changes made in (#25213) * removed jetpack stories example block from initial demo load * Mobile Stories block (part2: on done) (#25771) * added mobile StoryUpdateProgress component and bridge code to send/receive save progress * updated WPAndroid bridge DeferredEventEmitter to handle Story save events separately * changed all Save event interface methods to use String ids instead of int, and removed serverMediaId params as these don't apply while saving locally * redefined upload/save state constants * added onStorySaveResult handling to bridge, and renamed STORY_SAVE_STATE_* events to MEDIA_SAVE_STATE_* where appropriate * checking for matches of mediaId in mediaFiles while saving to send save progress updates * added mediaModelCreated() method to the bridge, so a new ID can be assigned to a mediaFile in a Story block * mediaId should always be a string in mediaFiles so, converting to avoid strict comparison to fail * removed commented code * updated documentation * added missing implementation of method storySaveSync() in demo app * fixed prettier warning * Update packages/block-editor/src/components/story-update-progress/README.md Co-authored-by: Joel Dean <[email protected]> * Update packages/block-editor/src/components/story-update-progress/README.md Co-authored-by: Joel Dean <[email protected]> * Mobile Stories block (part3: refactor / rename) (#26005) * renames for generic media files collection block and BlockMediaUpdateProgres * referencing the right props method in finishMediaSaveWithFailure * mistaken renames of parameters in bridge methods * renamed more abstract/generic method names requestMediaFilesEditorLoad * removed extra whtie space * renamed argument type Co-authored-by: Joel Dean <[email protected]> * Update packages/block-editor/src/components/block-media-update-progress/README.md Co-authored-by: Paul Von Schrottky <[email protected]> * using array.some() to find element in array * prettified function call * removed commented code * Media Files Collection (part4: error handling) (#26008) * added mobile StoryUpdateProgress component and bridge code to send/receive save progress * updated WPAndroid bridge DeferredEventEmitter to handle Story save events separately * changed all Save event interface methods to use String ids instead of int, and removed serverMediaId params as these don't apply while saving locally * redefined upload/save state constants * added onStorySaveResult handling to bridge, and renamed STORY_SAVE_STATE_* events to MEDIA_SAVE_STATE_* where appropriate * checking for matches of mediaId in mediaFiles while saving to send save progress updates * added mediaModelCreated() method to the bridge, so a new ID can be assigned to a mediaFile in a Story block * mediaId should always be a string in mediaFiles so, converting to avoid strict comparison to fail * removed commented code * updated documentation * added missing implementation of method storySaveSync() in demo app * fixed prettier warning * renames for generic media files collection block and BlockMediaUpdateProgres * referencing the right props method in finishMediaSaveWithFailure * mistaken renames of parameters in bridge methods * renamed more abstract/generic method names requestMediaFilesEditorLoad * removed extra whtie space * renamed argument type * renamed event paramter name to easier to understand 'success' boolean, matching the native counterpart * added cancel and retry bridge methods specific for mediaFiles collection based blocks * added requestMediaFilesSaveCancelDialog bridge method * renamed bridge method mediaModelCreatedForFile for more general purpose mediaIdChanged * Add missing iOS bridge declarations * added jsdoc like description for methods * removed unneeded return statement in some bridge methods * Update packages/react-native-bridge/index.js Co-authored-by: Joel Dean <[email protected]> * Update packages/react-native-bridge/index.js Co-authored-by: Joel Dean <[email protected]> * Update packages/react-native-bridge/index.js Co-authored-by: Joel Dean <[email protected]> * fixed typo, added punctuation Co-authored-by: eToledo <[email protected]> Co-authored-by: Joel Dean <[email protected]> * [RNMobile] added jetpack node_modules folder to cleanup step in JSbundle building (#26247) * added mobile StoryUpdateProgress component and bridge code to send/receive save progress * updated WPAndroid bridge DeferredEventEmitter to handle Story save events separately * changed all Save event interface methods to use String ids instead of int, and removed serverMediaId params as these don't apply while saving locally * redefined upload/save state constants * added onStorySaveResult handling to bridge, and renamed STORY_SAVE_STATE_* events to MEDIA_SAVE_STATE_* where appropriate * checking for matches of mediaId in mediaFiles while saving to send save progress updates * added mediaModelCreated() method to the bridge, so a new ID can be assigned to a mediaFile in a Story block * mediaId should always be a string in mediaFiles so, converting to avoid strict comparison to fail * removed commented code * updated documentation * added missing implementation of method storySaveSync() in demo app * fixed prettier warning * renames for generic media files collection block and BlockMediaUpdateProgres * referencing the right props method in finishMediaSaveWithFailure * mistaken renames of parameters in bridge methods * renamed more abstract/generic method names requestMediaFilesEditorLoad * removed extra whtie space * renamed argument type * renamed event paramter name to easier to understand 'success' boolean, matching the native counterpart * added cancel and retry bridge methods specific for mediaFiles collection based blocks * added requestMediaFilesSaveCancelDialog bridge method * renamed bridge method mediaModelCreatedForFile for more general purpose mediaIdChanged * added jetpack node_modules folder to cleanup step in JSbundle building tasks * Mobile Stories block - unit tests for BlockMediaUpdateProgress (#26423) * adding upload progress tests on BLockMediaUpdateProgress component (mediaFiles collection) * added save event tests for BlockMediaUpdateProgress component * ids in mediaFiles array are always strings, fixed that * updated function name passed by props * fixed mediaFiles const passing for saving, using tempMediaFiles * fixed state change for saveReset signal, was changing upload state instead * fixed typo * fixed using save state var * changed to more descriptive test names * removed commented line * renamed vars to match bridge signal name * Mobile stories block: hide behind feature flag (#26522) * hide Story block in non-DEV builds * prettified * passing enableStories feature flag in GutenbergProps and hiding block from picker if false * added space * renamed bridge GutenbergProps property to agnostic abstraction mediaFilesCollectionBlock * renamed var on Capabilities enum * removed stories specific block behavior * added Jdoc descriptions * [RNMobile] iOS side of bridge for media collection blocks (#26704) * Activate media files collection capabilitie on iOS example app * Implement iOS side of Bridge for Media Collection blocks * Update packages/react-native-bridge/ios/RNReactNativeGutenbergBridge.swift Co-authored-by: Paul Von Schrottky <[email protected]> Co-authored-by: Paul Von Schrottky <[email protected]> Co-authored-by: Joel Dean <[email protected]> Co-authored-by: Paul Von Schrottky <[email protected]> Co-authored-by: eToledo <[email protected]>
* updated initial example html content file with story block * adding method requestStoryCreatorLoad() to the bridge * added new interface OnStoryCreatorRequestListener * passing mediaFiles and blockId over the bridge in requestStoryCreatorLoad() * prettier fix * added gray-700 color, missing if not after retiring and changes made in (#25213) * removed jetpack stories example block from initial demo load * Mobile Stories block (part2: on done) (#25771) * added mobile StoryUpdateProgress component and bridge code to send/receive save progress * updated WPAndroid bridge DeferredEventEmitter to handle Story save events separately * changed all Save event interface methods to use String ids instead of int, and removed serverMediaId params as these don't apply while saving locally * redefined upload/save state constants * added onStorySaveResult handling to bridge, and renamed STORY_SAVE_STATE_* events to MEDIA_SAVE_STATE_* where appropriate * checking for matches of mediaId in mediaFiles while saving to send save progress updates * added mediaModelCreated() method to the bridge, so a new ID can be assigned to a mediaFile in a Story block * mediaId should always be a string in mediaFiles so, converting to avoid strict comparison to fail * removed commented code * updated documentation * added missing implementation of method storySaveSync() in demo app * fixed prettier warning * Update packages/block-editor/src/components/story-update-progress/README.md Co-authored-by: Joel Dean <[email protected]> * Update packages/block-editor/src/components/story-update-progress/README.md Co-authored-by: Joel Dean <[email protected]> * Mobile Stories block (part3: refactor / rename) (#26005) * renames for generic media files collection block and BlockMediaUpdateProgres * referencing the right props method in finishMediaSaveWithFailure * mistaken renames of parameters in bridge methods * renamed more abstract/generic method names requestMediaFilesEditorLoad * removed extra whtie space * renamed argument type Co-authored-by: Joel Dean <[email protected]> * Update packages/block-editor/src/components/block-media-update-progress/README.md Co-authored-by: Paul Von Schrottky <[email protected]> * using array.some() to find element in array * prettified function call * removed commented code * Media Files Collection (part4: error handling) (#26008) * added mobile StoryUpdateProgress component and bridge code to send/receive save progress * updated WPAndroid bridge DeferredEventEmitter to handle Story save events separately * changed all Save event interface methods to use String ids instead of int, and removed serverMediaId params as these don't apply while saving locally * redefined upload/save state constants * added onStorySaveResult handling to bridge, and renamed STORY_SAVE_STATE_* events to MEDIA_SAVE_STATE_* where appropriate * checking for matches of mediaId in mediaFiles while saving to send save progress updates * added mediaModelCreated() method to the bridge, so a new ID can be assigned to a mediaFile in a Story block * mediaId should always be a string in mediaFiles so, converting to avoid strict comparison to fail * removed commented code * updated documentation * added missing implementation of method storySaveSync() in demo app * fixed prettier warning * renames for generic media files collection block and BlockMediaUpdateProgres * referencing the right props method in finishMediaSaveWithFailure * mistaken renames of parameters in bridge methods * renamed more abstract/generic method names requestMediaFilesEditorLoad * removed extra whtie space * renamed argument type * renamed event paramter name to easier to understand 'success' boolean, matching the native counterpart * added cancel and retry bridge methods specific for mediaFiles collection based blocks * added requestMediaFilesSaveCancelDialog bridge method * renamed bridge method mediaModelCreatedForFile for more general purpose mediaIdChanged * Add missing iOS bridge declarations * added jsdoc like description for methods * removed unneeded return statement in some bridge methods * Update packages/react-native-bridge/index.js Co-authored-by: Joel Dean <[email protected]> * Update packages/react-native-bridge/index.js Co-authored-by: Joel Dean <[email protected]> * Update packages/react-native-bridge/index.js Co-authored-by: Joel Dean <[email protected]> * fixed typo, added punctuation Co-authored-by: eToledo <[email protected]> Co-authored-by: Joel Dean <[email protected]> * [RNMobile] added jetpack node_modules folder to cleanup step in JSbundle building (#26247) * added mobile StoryUpdateProgress component and bridge code to send/receive save progress * updated WPAndroid bridge DeferredEventEmitter to handle Story save events separately * changed all Save event interface methods to use String ids instead of int, and removed serverMediaId params as these don't apply while saving locally * redefined upload/save state constants * added onStorySaveResult handling to bridge, and renamed STORY_SAVE_STATE_* events to MEDIA_SAVE_STATE_* where appropriate * checking for matches of mediaId in mediaFiles while saving to send save progress updates * added mediaModelCreated() method to the bridge, so a new ID can be assigned to a mediaFile in a Story block * mediaId should always be a string in mediaFiles so, converting to avoid strict comparison to fail * removed commented code * updated documentation * added missing implementation of method storySaveSync() in demo app * fixed prettier warning * renames for generic media files collection block and BlockMediaUpdateProgres * referencing the right props method in finishMediaSaveWithFailure * mistaken renames of parameters in bridge methods * renamed more abstract/generic method names requestMediaFilesEditorLoad * removed extra whtie space * renamed argument type * renamed event paramter name to easier to understand 'success' boolean, matching the native counterpart * added cancel and retry bridge methods specific for mediaFiles collection based blocks * added requestMediaFilesSaveCancelDialog bridge method * renamed bridge method mediaModelCreatedForFile for more general purpose mediaIdChanged * added jetpack node_modules folder to cleanup step in JSbundle building tasks * Mobile Stories block - unit tests for BlockMediaUpdateProgress (#26423) * adding upload progress tests on BLockMediaUpdateProgress component (mediaFiles collection) * added save event tests for BlockMediaUpdateProgress component * ids in mediaFiles array are always strings, fixed that * updated function name passed by props * fixed mediaFiles const passing for saving, using tempMediaFiles * fixed state change for saveReset signal, was changing upload state instead * fixed typo * fixed using save state var * changed to more descriptive test names * removed commented line * renamed vars to match bridge signal name * Mobile stories block: hide behind feature flag (#26522) * hide Story block in non-DEV builds * prettified * passing enableStories feature flag in GutenbergProps and hiding block from picker if false * added space * renamed bridge GutenbergProps property to agnostic abstraction mediaFilesCollectionBlock * renamed var on Capabilities enum * removed stories specific block behavior * added Jdoc descriptions * [RNMobile] iOS side of bridge for media collection blocks (#26704) * Activate media files collection capabilitie on iOS example app * Implement iOS side of Bridge for Media Collection blocks * Update packages/react-native-bridge/ios/RNReactNativeGutenbergBridge.swift Co-authored-by: Paul Von Schrottky <[email protected]> Co-authored-by: Paul Von Schrottky <[email protected]> Co-authored-by: Joel Dean <[email protected]> Co-authored-by: Paul Von Schrottky <[email protected]> Co-authored-by: eToledo <[email protected]>
* updated initial example html content file with story block * adding method requestStoryCreatorLoad() to the bridge * added new interface OnStoryCreatorRequestListener * passing mediaFiles and blockId over the bridge in requestStoryCreatorLoad() * prettier fix * added gray-700 color, missing if not after retiring and changes made in (#25213) * removed jetpack stories example block from initial demo load * Mobile Stories block (part2: on done) (#25771) * added mobile StoryUpdateProgress component and bridge code to send/receive save progress * updated WPAndroid bridge DeferredEventEmitter to handle Story save events separately * changed all Save event interface methods to use String ids instead of int, and removed serverMediaId params as these don't apply while saving locally * redefined upload/save state constants * added onStorySaveResult handling to bridge, and renamed STORY_SAVE_STATE_* events to MEDIA_SAVE_STATE_* where appropriate * checking for matches of mediaId in mediaFiles while saving to send save progress updates * added mediaModelCreated() method to the bridge, so a new ID can be assigned to a mediaFile in a Story block * mediaId should always be a string in mediaFiles so, converting to avoid strict comparison to fail * removed commented code * updated documentation * added missing implementation of method storySaveSync() in demo app * fixed prettier warning * Update packages/block-editor/src/components/story-update-progress/README.md Co-authored-by: Joel Dean <[email protected]> * Update packages/block-editor/src/components/story-update-progress/README.md Co-authored-by: Joel Dean <[email protected]> * Mobile Stories block (part3: refactor / rename) (#26005) * renames for generic media files collection block and BlockMediaUpdateProgres * referencing the right props method in finishMediaSaveWithFailure * mistaken renames of parameters in bridge methods * renamed more abstract/generic method names requestMediaFilesEditorLoad * removed extra whtie space * renamed argument type Co-authored-by: Joel Dean <[email protected]> * Update packages/block-editor/src/components/block-media-update-progress/README.md Co-authored-by: Paul Von Schrottky <[email protected]> * using array.some() to find element in array * prettified function call * removed commented code * Media Files Collection (part4: error handling) (#26008) * added mobile StoryUpdateProgress component and bridge code to send/receive save progress * updated WPAndroid bridge DeferredEventEmitter to handle Story save events separately * changed all Save event interface methods to use String ids instead of int, and removed serverMediaId params as these don't apply while saving locally * redefined upload/save state constants * added onStorySaveResult handling to bridge, and renamed STORY_SAVE_STATE_* events to MEDIA_SAVE_STATE_* where appropriate * checking for matches of mediaId in mediaFiles while saving to send save progress updates * added mediaModelCreated() method to the bridge, so a new ID can be assigned to a mediaFile in a Story block * mediaId should always be a string in mediaFiles so, converting to avoid strict comparison to fail * removed commented code * updated documentation * added missing implementation of method storySaveSync() in demo app * fixed prettier warning * renames for generic media files collection block and BlockMediaUpdateProgres * referencing the right props method in finishMediaSaveWithFailure * mistaken renames of parameters in bridge methods * renamed more abstract/generic method names requestMediaFilesEditorLoad * removed extra whtie space * renamed argument type * renamed event paramter name to easier to understand 'success' boolean, matching the native counterpart * added cancel and retry bridge methods specific for mediaFiles collection based blocks * added requestMediaFilesSaveCancelDialog bridge method * renamed bridge method mediaModelCreatedForFile for more general purpose mediaIdChanged * Add missing iOS bridge declarations * added jsdoc like description for methods * removed unneeded return statement in some bridge methods * Update packages/react-native-bridge/index.js Co-authored-by: Joel Dean <[email protected]> * Update packages/react-native-bridge/index.js Co-authored-by: Joel Dean <[email protected]> * Update packages/react-native-bridge/index.js Co-authored-by: Joel Dean <[email protected]> * fixed typo, added punctuation Co-authored-by: eToledo <[email protected]> Co-authored-by: Joel Dean <[email protected]> * [RNMobile] added jetpack node_modules folder to cleanup step in JSbundle building (#26247) * added mobile StoryUpdateProgress component and bridge code to send/receive save progress * updated WPAndroid bridge DeferredEventEmitter to handle Story save events separately * changed all Save event interface methods to use String ids instead of int, and removed serverMediaId params as these don't apply while saving locally * redefined upload/save state constants * added onStorySaveResult handling to bridge, and renamed STORY_SAVE_STATE_* events to MEDIA_SAVE_STATE_* where appropriate * checking for matches of mediaId in mediaFiles while saving to send save progress updates * added mediaModelCreated() method to the bridge, so a new ID can be assigned to a mediaFile in a Story block * mediaId should always be a string in mediaFiles so, converting to avoid strict comparison to fail * removed commented code * updated documentation * added missing implementation of method storySaveSync() in demo app * fixed prettier warning * renames for generic media files collection block and BlockMediaUpdateProgres * referencing the right props method in finishMediaSaveWithFailure * mistaken renames of parameters in bridge methods * renamed more abstract/generic method names requestMediaFilesEditorLoad * removed extra whtie space * renamed argument type * renamed event paramter name to easier to understand 'success' boolean, matching the native counterpart * added cancel and retry bridge methods specific for mediaFiles collection based blocks * added requestMediaFilesSaveCancelDialog bridge method * renamed bridge method mediaModelCreatedForFile for more general purpose mediaIdChanged * added jetpack node_modules folder to cleanup step in JSbundle building tasks * Mobile Stories block - unit tests for BlockMediaUpdateProgress (#26423) * adding upload progress tests on BLockMediaUpdateProgress component (mediaFiles collection) * added save event tests for BlockMediaUpdateProgress component * ids in mediaFiles array are always strings, fixed that * updated function name passed by props * fixed mediaFiles const passing for saving, using tempMediaFiles * fixed state change for saveReset signal, was changing upload state instead * fixed typo * fixed using save state var * changed to more descriptive test names * removed commented line * renamed vars to match bridge signal name * Mobile stories block: hide behind feature flag (#26522) * hide Story block in non-DEV builds * prettified * passing enableStories feature flag in GutenbergProps and hiding block from picker if false * added space * renamed bridge GutenbergProps property to agnostic abstraction mediaFilesCollectionBlock * renamed var on Capabilities enum * removed stories specific block behavior * added Jdoc descriptions * [RNMobile] iOS side of bridge for media collection blocks (#26704) * Activate media files collection capabilitie on iOS example app * Implement iOS side of Bridge for Media Collection blocks * Update packages/react-native-bridge/ios/RNReactNativeGutenbergBridge.swift Co-authored-by: Paul Von Schrottky <[email protected]> Co-authored-by: Paul Von Schrottky <[email protected]> Co-authored-by: Joel Dean <[email protected]> Co-authored-by: Paul Von Schrottky <[email protected]> Co-authored-by: eToledo <[email protected]> Co-authored-by: mzorz <[email protected]> Co-authored-by: Joel Dean <[email protected]> Co-authored-by: Paul Von Schrottky <[email protected]> Co-authored-by: eToledo <[email protected]>
Description
This PR builds on top of #25242, and brings the capability of showing a Story composition / save / upload progress on a given Story block once it has been externally edited and re-saved.
How has this been tested?
Please use this PR in the WordPress Android repo wordpress-mobile/WordPress-Android#12982
Types of changes
New feature (non-breaking change which adds functionality)
Checklist: