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

fix: dynamic if teardown #1886

Conversation

BeksOmega
Copy link
Contributor

Dependent on #1885

Work on #1843

Tears down the entire block instead of leaving the top input. This was causing a bug as outlined below.

Also deprecated minInputs since it's not being used, and implementing it like I did for the list blocks seems like more hastle than it's worth.

The Bug

Sometimes your if an else-ifs would be out of order, or you would get two else-ifs instead of one if and one else-if. This only happened when loading from the old serialization format.

To Reproduce

  1. Open up the dynamic connections plugin on the block-dynamic-serialization branch.
  2. Load the following XML into the demo:
<xml xmlns="https://developers.google.com/blockly/xml">
  <block type="controls_if" id="sakn]=Bg/(7J)B4fgb%_" x="249" y="279">
    <mutation inputs="1,2" else="false" next="3"></mutation>
    <value name="IF1">
      <block type="logic_boolean" id="B5(rV1:^?a_:eoCGcNCN">
        <field name="BOOL">TRUE</field>
      </block>
    </value>
    <value name="IF2">
      <block type="logic_boolean" id="a`lufX}(^;Q)EbJYSdc@">
        <field name="BOOL">FALSE</field>
      </block>
    </value>
  </block>
</xml>
  1. Drag the block.
  2. Observe.
    image

Testing

Retested the reproduction steps and this no longer reproduces.

@BeksOmega BeksOmega force-pushed the block-dynamic-serialization branch from 5eb3192 to 545ae90 Compare September 7, 2023 15:44
@BeksOmega BeksOmega force-pushed the fix/dynamic-if-teardown branch from bf8c324 to 4572e8a Compare September 7, 2023 17:17
@BeksOmega BeksOmega marked this pull request as ready for review September 7, 2023 17:37
@BeksOmega BeksOmega requested a review from a team as a code owner September 7, 2023 17:37
@BeksOmega BeksOmega requested review from NeilFraser and removed request for a team September 7, 2023 17:37
@BeksOmega BeksOmega merged commit 6736f80 into google:block-dynamic-serialization Sep 7, 2023
BeksOmega added a commit to BeksOmega/blockly-samples that referenced this pull request Sep 19, 2023
BeksOmega added a commit to BeksOmega/blockly-samples that referenced this pull request Sep 19, 2023
BeksOmega added a commit to BeksOmega/blockly-samples that referenced this pull request Sep 28, 2023
BeksOmega added a commit to BeksOmega/blockly-samples that referenced this pull request Sep 28, 2023
BeksOmega added a commit that referenced this pull request Sep 28, 2023
* fix: upgrade keyboard navigation to use new clipboard API (#1844)

* fix: upgrade keyboard navigation to use new clipboard API

* chore: reorganize test suites

* chore: fixup delete tests

* chore: work on fixing copy tests

* chore: finish fixing up copy tests

* chore: fix cut and paste tests

* chore: delete paste suite

* chore: delete unnecessary test helpers

* chore: fixup other tests

* chore: document why we're stubbing cancelAnimationFrame and add it to teardown

* fix: upgrade cross tab copy paste to use new clipboard API (#1845)

* fix: upgrade cross tab copy paste to use new clipboard API

* chore: update to beta

* fix: upgrade shareable procedures for new clipboard API (#1863)

* chore: fix tests

* fix: upgrade the shareable procedure blocks to use the new clipboard system

* chore: update blockly version

* chore: fix lint

* fix: serialization of dynamic if blocks (#1880)

* fix: normalize inputs

* fix: work on fixing serialization

* chore: remove inputCounts

* chore: fix tests

* fix: infinite loop

* fix: serialization of dynamic list blocks (#1885)

* fix: normalize inputs

* fix: serialization

* chore: remove inputCounter

* fix: normalize connections from load

* chore: switch tests to regexp

* chore: refactor tests

* fix: rebuilding behavior

* chore: revert changes to playground

* chore: format

* fix: fully tear down dynamic block before rebuilding (#1886)

* fix: dynamic text serialization (#1887)

* fix: normalize inputs

* fix: serialization

* chore: remove inputCounter

* fix: normalize connections from load

* chore: switch tests to regexp

* chore: refactor tests

* feat: dynamic json serialization (#1888)

* feat: add json serialization for text and list dynamic blocks

* chore: use helpers to append inputs

* chore: add json serialization to if blocks

* fix: support loading stringified XML from JSOn

* fix: dynamic connection plugin readme (#1919)

* chore: update readme and remove warning

* chore: add backticks

* deprecate: edit row separator readme to deprecate it (#1920)

* chore: edit row separator readme to deprecate it.

* Mark deprecated package private to stop publishing

* fix: unnamed callers for shareable procedures (#1983)

* fix: rendering dynamic connections (#1984)

* fix: migrating json for dynamic connections (#1985)

* chore: get tests to fail

* fix: round tripping old json to new json

* chore: fixup fixes

* chore: give up on getting tests to fail properly

* fix: fixup keyboard nav to remove blockly version check (#1991)

* fix: fixup keyboard nav to remove check

* chore: update beta version

* fix: bump blockly to v10.2.0

---------

Co-authored-by: John Nesky <nesky@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants