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

Support for a docked sheet #42

Open
Tracked by #12
HadrienGardeur opened this issue Dec 8, 2024 · 2 comments
Open
Tracked by #12

Support for a docked sheet #42

HadrienGardeur opened this issue Dec 8, 2024 · 2 comments
Assignees
Labels
Milestone

Comments

@HadrienGardeur
Copy link
Member

HadrienGardeur commented Dec 8, 2024

This component will look almost exactly like the popover sheet described in #41, but rather than appearing on top of the content, it'll be displayed next to it, pushing things to the side in doing so.

If the affordance allows it, this component should also be resizable, allowing the user to control the width, as constrained by a minimum and maximum width.

@HadrienGardeur HadrienGardeur added this to the Full Layout milestone Dec 8, 2024
@HadrienGardeur HadrienGardeur moved this from Draft to Todo in Readium Playground Dec 8, 2024
@HadrienGardeur HadrienGardeur changed the title Support for a docked/side sheet (left/right) Support for a docked sheet Dec 9, 2024
@JayPanoz JayPanoz moved this from Todo to In Progress in Readium Playground Dec 18, 2024
@JayPanoz
Copy link
Contributor

JayPanoz commented Jan 7, 2025

Question: what happens to Arrows when a sheet is docked?

Is it grouped with the iframe’s container and displayed next to it? Or is it its own separate element that is always displayed at the edge of the screen/window?

For instance:

  1. Docked Toc | Arrow Left | iframe | Arrow Right
  2. Arrow Left | Docked Toc | iframe | Arrow Right

Edit: Answer 2.

Basically we have docked left | arrow left | iframe | arrow right | docked right

@JayPanoz
Copy link
Contributor

JayPanoz commented Jan 7, 2025

Detailing what has to be handled after the initial implementation on commit 33fc3d8d deployment – not using the alias to pinpoint the state at the time of writing.

  • add aria labels to docking elements
  • display based on preference (Sheets.dockedLeft + Sheets.dockedRight)
  • make panel draggable, with preferences
  • handle edge cases of dockable and sheet: Sheets.docked{Side} preferences since on smaller breakpoints, it makes sense panels are not dockable but fullscreen – and the sheet should therefore not display the docking options in that case
  • clicking on the action icon should close the docked panel
  • there’s a bug the first time you dock the panel – autoPagination doesn’t update as it should, which may either be a stale state, or a wrong clientWidth when constraining the container’s width
  • there’s a rendering issue with the container’s width not being correct, with the panel being cut off
  • add the logic for FXL – unlike reflow, the navigator’s container is not constrained at the moment, as it created issues with the FXLFramePoolManager’s resize handler that we didn’t need to address at that time, but we now do and it seems likely it will impact the ts-toolkit
  • define focus and keyboard handling

@JayPanoz JayPanoz mentioned this issue Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: In Progress
Development

No branches or pull requests

2 participants