Skip to content

Conversation

@miguelpeixe
Copy link
Member

p1737411007755239-slack-C055SRT7WN4

When saving a post via Gutenberg, there's a high chance that at least 2 requests will be made to save the post. (see WordPress/gutenberg#15094)

This will cause consecutive dispatches to distribute the post, potentially with the same payload. This PR prevents dispatches with the same payload from getting through.

Testing

  1. Distribute a post to a node
  2. Make changes in the editor and save
  3. Confirm only 1 dispatch is made and the change is distributed
  4. Add a new custom field via the "Custom Fields" advanced section and save
  5. Confirm that also only 1 dispatch is made and the change is distributed
  6. Make changes to the content, add a new custom field and save
  7. Confirm that 2 dispatches are made and the change is distributed (the first will be post content and the second with post meta)

@miguelpeixe miguelpeixe self-assigned this Jan 21, 2025
@miguelpeixe miguelpeixe requested a review from a team as a code owner January 21, 2025 17:43
Copy link
Member

@naxoc naxoc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! I tested this and it absolutely works. I love the idea with the hash. 👍

ok

@miguelpeixe miguelpeixe merged commit 2149a62 into trunk Jan 21, 2025
4 checks passed
@miguelpeixe miguelpeixe deleted the fix/content-distribution-consecutive-dispatches branch January 21, 2025 19:22
@github-actions
Copy link

Hey @miguelpeixe, good job getting this PR merged! 🎉

Now, the needs-changelog label has been added to it.

Please check if this PR needs to be included in the "Upcoming Changes" and "Release Notes" doc. If it doesn't, simply remove the label.

If it does, please add an entry to our shared document, with screenshots and testing instructions if applicable, then remove the label.

Thank you! ❤️

matticbot pushed a commit that referenced this pull request Jan 23, 2025
# [2.5.0-alpha.1](v2.4.0...v2.5.0-alpha.1) (2025-01-23)

### Bug Fixes

* **content-distribution:** block additional UI components ([#197](#197)) ([3f30cdb](3f30cdb))
* **content-distribution:** handling multiple post meta ([#199](#199)) ([c93084d](c93084d))
* **content-distribution:** Improve CSS for blocked editor ([#193](#193)) ([295bdad](295bdad)), closes [#181](#181)
* **content-distribution:** persist site hash ([#186](#186)) ([120b759](120b759))
* **content-distribution:** prevent consecutive dispatches ([#198](#198)) ([2149a62](2149a62))
* **content-distribution:** refactor outgoing post js ([#188](#188)) ([cc08edc](cc08edc))
* **memberships:** remove managed fields on cancel or expire ([#192](#192)) ([67a5cf0](67a5cf0))

### Features

* **content-distribution:** Block the editor for incoming posts ([#181](#181)) ([48b4cae](48b4cae))
* **content-distribution:** confirm dialog for unlinking and relinking posts ([#190](#190)) ([f36bb28](f36bb28))
* **content-distribution:** migrator ([#185](#185)) ([06ec18a](06ec18a))
* **content-distribution:** post status on create ([#189](#189)) ([1ad3e0c](1ad3e0c))
* sync multiple user roles ([#187](#187)) ([9fa833c](9fa833c))
@matticbot
Copy link
Contributor

🎉 This PR is included in version 2.5.0-alpha.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

matticbot pushed a commit that referenced this pull request Feb 3, 2025
# [2.5.0](v2.4.0...v2.5.0) (2025-02-03)

### Bug Fixes

* **content-distribution:** block additional UI components ([#197](#197)) ([3f30cdb](3f30cdb))
* **content-distribution:** handling multiple post meta ([#199](#199)) ([c93084d](c93084d))
* **content-distribution:** Improve CSS for blocked editor ([#193](#193)) ([295bdad](295bdad)), closes [#181](#181)
* **content-distribution:** persist site hash ([#186](#186)) ([120b759](120b759))
* **content-distribution:** prevent consecutive dispatches ([#198](#198)) ([2149a62](2149a62))
* **content-distribution:** refactor outgoing post js ([#188](#188)) ([cc08edc](cc08edc))
* **memberships:** remove managed fields on cancel or expire ([#192](#192)) ([67a5cf0](67a5cf0))

### Features

* **content-distribution:** Block the editor for incoming posts ([#181](#181)) ([48b4cae](48b4cae))
* **content-distribution:** confirm dialog for unlinking and relinking posts ([#190](#190)) ([f36bb28](f36bb28))
* **content-distribution:** migrator ([#185](#185)) ([06ec18a](06ec18a))
* **content-distribution:** post status on create ([#189](#189)) ([1ad3e0c](1ad3e0c))
* sync multiple user roles ([#187](#187)) ([9fa833c](9fa833c))
@matticbot
Copy link
Contributor

🎉 This PR is included in version 2.5.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants