Skip to content

chore(deps): update drawer to diadem-vaul-svelte + mobile/scout interaction fixes#75

Open
roundaboutluke wants to merge 6 commits intoccev:mainfrom
roundaboutluke:deps/diadem-vaul-svelte
Open

chore(deps): update drawer to diadem-vaul-svelte + mobile/scout interaction fixes#75
roundaboutluke wants to merge 6 commits intoccev:mainfrom
roundaboutluke:deps/diadem-vaul-svelte

Conversation

@roundaboutluke
Copy link
Contributor

This PR switches Diadem’s mobile drawer to diadem-vaul-svelte, a parity port of vaul-svelte updated for the latest Bits UI/Melt stack. Alongside the dependency swap it fixes a few real-world mobile interaction issues - particularly around map panning behind the drawer and Scout specific issues, while keeping the drawer’s look/feel consistent.

Key points:

  • Replaces vaul-svelte with diadem-vaul-svelte, fixing several issues (most notably being able to edit filter names on mobile)

  • iOS Scout fix: removes the “invisible wall” interaction when the Scout drawer is open so the map remains pannable above it.

  • Scout UX: prevents accidental drawer drag/close while adjusting the Scout size slider (data-vaul-no-drag)

  • Scout UX: fixes a brief jump/flash during close by keeping the Scout menu rendered until the drawer’s close animation completes (prevents it appearing at the top for a split second before disappearing - unsure if this was a Webkit only issue?)

  • Chrome fix: applies a targeted pointer-events workaround so the fullscreen drawer layer doesn’t block panning the map behind Profile/Filters

WebKit pointer-events consideration: we intentionally avoid forcing the pointer-events override on iOS/mobile WebKit because it breaks drawer scrolling; Scout panning on WebKit works because there is no scrolling there to worry about conflicts. I have tried several different ways to implement this and the trade offs are never worth it, happy for someone else to attempt this in the future - but I figure as scout works it's not a huge issue to accept this as a mobile WebKit limitation without impacting functionality on less fussy browsers for now.

This should resolve nearly all issues with drawer interactions on iOS, but will require further testing to ensure it hasn't broken anything on real android devices (only tested in emu).

Note: Chrome visual issues when scrolling the drawer likely remain and need to be scoped and fixed separately while keeping in mind the above fixes largely targeting mobile WebKit.

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