Skip to content

App: Docs view refactoring#2368

Open
laurensvalk wants to merge 5 commits intomasterfrom
doc-scroll
Open

App: Docs view refactoring#2368
laurensvalk wants to merge 5 commits intomasterfrom
doc-scroll

Conversation

@laurensvalk
Copy link
Copy Markdown
Member

@laurensvalk laurensvalk commented Mar 25, 2026

The iframe automatically scrolled to 0 when CSS display: none is set, so we had several workarounds to keep track of scrolling.

We can keep it in the DOM and hide it instead. This lets us get rid of the workarounds, but keep the position if you open the docs again.


On a related note, I wonder if we really need the active page to persist across a full reload with app/hooks.ts.

Using session storage, mirroring to local storage, and then manage outdated links all seems relatively complicated for something that isn't necessarily practical. The next day, I'd personally rather start from the home page. It also makes things a bit more complicated when navigating to a particular page from an interaction: pybricks/support#1515

Feel free to 👍 or 👎 this suggestion @dlech, otherwise I'd be happy to submit this in the next one.

The iframe automatically scrolled to 0 when CSS `display: none` is set, so we had several workarounds. Hide it instead.
This was very complicated, particularly between versions and tabs and windows, for something that offers only a minor convenience.

This also makes it simpler to navigate to a particular page interactively by just setting the iframe URL, which is useful for interactive help from the block editor.
This was an undocumented feature that gets in the way of other shortcuts, and doesn't extend well to the sideview being used for other things in future commits.
Everything is visually unchanged. This just moves the button logic to the app, since it doesn't conceptually belong to the editor component.

It controls things such as docs which has nothing to do with the editor. This way we don't have to pass states as props around when we add more buttons later.
@laurensvalk
Copy link
Copy Markdown
Member Author

laurensvalk commented Mar 30, 2026

Added a few more commits to gear up for actual changes in the next pull request.

This PR is still just refactoring to simplify the documentation view. All buttons are still in the same place.

User visible changes:

  • the shortkey CTRL+D is dropped.
  • docs position is maintained if you toggle it, but lost when you close Pybricks.
  • docs are closed by default [1]
  1. This is based on real life user interactions in classrooms. All users I have seen leave all defaults open, leaving a tiny cramped space for coding. Docs can be useful as a reference. This could an automated lookup as we have with blocks, which we could have for Python also. Like [Feature] Dynamically go to doc page from Python support#2650, but that is for another time.

@laurensvalk laurensvalk changed the title App: Drop hacks that preserved docs scroll. App: Docs view refactoring Mar 30, 2026
Having this persist across sessions is not necessary and a bit overly complicated when we add more sideview states such as camera (which should not stay on by default).
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.

1 participant