-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
plannedIssue has been analyzed and plannedIssue has been analyzed and planned
Description
Context
Issue #136 requested replacing FullscreenModal with a drawer for non-camera dialogs. We attempted to implement this using Vaul (https://vaul.emilkowal.ski/), which is based on Radix Dialog primitives.
Problem
While Vaul works well in development, it has significant compatibility issues with the test environment:
- The library tries to access DOM properties (
transform,style.transform) that aren't properly available in jsdom - Mocking the library proved complex due to its internal state management
- The errors occur during pointer event handling, making it difficult to test user interactions
Requirements
We need a drawer solution that:
- Works seamlessly in both development and test environments
- Provides smooth slide-in animations from any edge (left, right, top, bottom)
- Integrates well with Radix UI Theme components
- Supports proper accessibility features
- Handles click-outside-to-close and ESC key interactions
Potential Solutions
- Radix UI Dialog with custom CSS - Use the standard Radix Dialog with CSS transforms for drawer behavior
- React Aria Components - Adobe's React Aria has a drawer component that might be more test-friendly
- Custom implementation - Build a simple drawer using React Portal and CSS transitions
- Alternative libraries - Research other drawer libraries with better test compatibility
Related
Metadata
Metadata
Assignees
Labels
plannedIssue has been analyzed and plannedIssue has been analyzed and planned