blocks: how to handle 'undocked' blocks

Open
#43 5 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
javascript
Domain
frontend

Research direction

Start by reading the discussion in this issue, especially the examples of undocked blocks, then review issue #42 and the referenced PXT issue #849. The issue needs an agreed behavior for undocked blocks before implementation can begin; completion criteria are not defined here.

Written by the indexing model from the issue text.

Description

(this is a complex one that I think needs some discussion - opening this issue as a place for that)

At the moment in blocks, as far as I can see, any block on the canvas will cause code to be generated and likely run. There aren't 'hats' or 'events', not even an 'on start' one.

This can cause a few possible issues.
For one, it's fundamentally different to scratch
image
In this case, the 'hmm' will never happen.
The difference is not in itself a reason to change, but In the past we've seen kids use 'undocking' blocks as a way to 'comment them out' (IE you build a complex set of blocks and then 'undock' them in order to stop them running. This is one good reason to think about how things work.

(it's also different from PXT, too)

Secondly, it can create some confusing things on canvas if your project has grown and then shrunk again.

For example, someone who knows how to code will easily spot the issue here:
image
...but for someone who is only focused on the blocks this could be really confusing. This is a slightly artificial example, but I think the problem in general is real, especially given the lack of clear notification that things are not currently visible, etc. (see in part #42 )

Note that PXT removed 'hats' early on in development and decided to add them back. There's a good discussion about that here:
https://github.com/Microsoft/pxt/issues/849

Dominant language
JavaScript
Stars
201
Forks
126
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from bbcmicrobit/PythonEditor

All issues in bbcmicrobit/PythonEditor

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.