Skip to content

Find alternative drawer solution for EntityBrowser #143

@fx

Description

@fx

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:

  1. Works seamlessly in both development and test environments
  2. Provides smooth slide-in animations from any edge (left, right, top, bottom)
  3. Integrates well with Radix UI Theme components
  4. Supports proper accessibility features
  5. Handles click-outside-to-close and ESC key interactions

Potential Solutions

  1. Radix UI Dialog with custom CSS - Use the standard Radix Dialog with CSS transforms for drawer behavior
  2. React Aria Components - Adobe's React Aria has a drawer component that might be more test-friendly
  3. Custom implementation - Build a simple drawer using React Portal and CSS transitions
  4. Alternative libraries - Research other drawer libraries with better test compatibility

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    plannedIssue has been analyzed and planned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions