-
Notifications
You must be signed in to change notification settings - Fork 3
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
Sheets #51
base: develop
Are you sure you want to change the base?
Conversation
Takes the number of items per row to infer which one to select and focus, but it pretty much overrides the React Aria component default so things may be missing currently, it has to be stress-tested a11y-wise.
This is stolen by themes anyway, but opens a can of worms as themes will steal the focus as a side effect of opening settings, even if it’s not the first section in the sheet.
You can set a default for all actions, then override it either for all breakpoints, or per breakpoint for each action
For RSPrefs, as their name is tied to this key, so using the prop directly could cause issues further down the line.
Deploying playground with Cloudflare Pages
|
If selected not found, fall back on close button
And Reorg/rename styles
Let’s now focus on docking options
@bluefirepatrick thanks for the review. And sorry for the lack of commits in the last days as I've been neck-deep in redesigning docked sheets so that:
While implementing resizability it became clear the current approach based on positioning couldn't perform well. And to be honest it also creates unnecessary complexity to handle the preference. Hopefully I should have something better by the start of next week. |
To prevent circular references and errors
Docking is now handled in reducers, with global states, and less complexity. Panels are now collapsible as a side effect of React portal requiring a DOM element to render the docked sheet. Docking is now direction-agnostic and takes RTL into account
Several issues to fix though, including arrows on hover + tap/click and immersive mode set to false
Yeah so no, given the current status of this project, and what exists for React web, there’s not much else to do than creating our own component. Sigh.
So that it’s easier for components to know what’s open and docked. + OverflowMenu was a global state for all overflow menus. Now they are handled as their own object.
Except NextJS
This PR takes care of #12, so expect things to change dramatically while this is in Draft as we’ll have to build custom components to implement all types listed in the issue. Due to holidays, things should move a little bit slower though.
At this stage, focus was on #41 and #47 in order to init things.
At the time of drafting, the following has been worked on to build the foundations of this epic:
PopoverSheet
andFullscreenSheet
components – which are currently more like templates to help test other things listed, hence minimal styling, etc.;SheetWithBreakpoints
component that should help pick the type of sheet based on the static breakpoints set in Preferences;To illustrate/test the
SheetWithBreakpoints
component, Settings is usingfullscreen
incompact
andmedium
, thenpopover
(default) fromexpanded
.Alias for deploy to latest commit: sheets.playground-7xz.pages.dev