Skip to content
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

Editor: Reshape blocks state under own key #11315

Merged
merged 1 commit into from
Oct 31, 2018
Merged

Conversation

aduth
Copy link
Member

@aduth aduth commented Oct 31, 2018

Extracted from #10844

This pull request seeks to refactor blocks state to track blocks state as a single subtree within the editor reducer.

Before:

  • editor
    • edits
    • blocksByClientId
    • blockOrder

After:

  • editor
    • edits
    • blocks
      • byClientId
      • order

The rationale for this change is in better representing treatment the two as a collective unit, facilitating work in #10844 to shift the isDirty tracking from editor to blocks, and enabling the simplification of e.g. memoized selector cache-busting, which can reference the single editor.blocks (where previously it would enumerate both blocksByClientId and blockOrder).

Testing instructions:

This is a refactoring change. There should be no notable impact on behavior.

@aduth aduth added Framework Issues related to broader framework topics, especially as it relates to javascript [Type] Code Quality Issues or PRs that relate to code quality labels Oct 31, 2018
Copy link
Member

@jorgefilipecosta jorgefilipecosta left a comment

Choose a reason for hiding this comment

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

I did some smoke testing and I did not managed to catch any regression. The tests are passing. And I did some "grepping" and I did not managed to catch any change that was missing. So it LGTM 👍
It would be good if we merge as early as possible in a release so we maximize the time of this change on master (witgout being released) to increase the porbability of catching any bug.

@aduth
Copy link
Member Author

aduth commented Oct 31, 2018

I probably should've mentioned as well that it's a significantly easier review using the GitHub "Hide whitespace changes" setting:

image

@jorgefilipecosta
Copy link
Member

I probably should've mentioned as well that it's a significantly easier review using the GitHub "Hide whitespace changes" setting

Yes, that's the option I used, it makes the changes much easier to understand.

@aduth aduth merged commit bb9d9f1 into master Oct 31, 2018
@aduth aduth deleted the update/editor-blocks-state branch October 31, 2018 19:54
daniloercoli added a commit that referenced this pull request Nov 1, 2018
…rnmobile/port-quote-block-step-1

* 'master' of https://github.com/WordPress/gutenberg: (22 commits)
  Add removed periods to block descriptions. (#11367)
  Remove findDOMNode usage from the inserter (#11363)
  Remove deprecated componentWillReceiveProps from TinyMCE component (#11368)
  Create file blocks when dropping multiple files at once (#11297)
  Try avoiding the deprecated findDOMNode API from DropZone Provider (#11168)
  Fix: make meta+A behaviour of selecting all blocks work on safari and firefox. (#8180)
  Remove _wpGutenbergCodeEditorSettings and wp.codeEditor assets (#11342)
  Remove the Cloudflare warning (#11350)
  Image Block: Use source_url for media file link (#11254)
  Enhance styling of nextpage block using the Hr element (#11354)
  Embed block refactor and tidy (#10958)
  Nonce Middleware: Wrap the nonce middleware function into it's own function that isn't regenerated on every API request. (#11347)
  Fix RTL block alignments (#11293)
  RichText: fix buggy enter/delete behaviour (#11287)
  Remove code coverage setup (#11198)
  Parser: Runs all parser implementations against the same tests (#11320)
  Stop trying to autosave when title and classic block content both are empty. (#10404)
  Fix "Mac OS" typo + use fancy quotes consistently (#11310)
  Update documentation link paths (#11324)
  Editor: Reshape blocks state under own key (#11315)
  ...

# Conflicts:
#	gutenberg-mobile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Framework Issues related to broader framework topics, especially as it relates to javascript [Type] Code Quality Issues or PRs that relate to code quality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants