Content-Length: 272673 | pFad | https://github.com/coder/coder/issues/18998

98 Navigation: Migrate Menu and Dialog components · Issue #18998 · coder/coder · GitHub
Skip to content

Navigation: Migrate Menu and Dialog components #18998

@blink-so

Description

@blink-so

Overview

Migrate MUI navigation and overlay components to shadcn/ui equivalents.

Parent Issue: #18993
Estimated Duration: 2-3 days
Priority: Medium
Depends on: #18995 (Core Components)

Component Usage Analysis

  • Menu: 7 usages
  • MenuItem: 21 usages
  • MenuList: 1 usage
  • Dialog: 3 usages
  • DialogTitle: 2 usages
  • DialogContent: 2 usages
  • DialogContentText: 2 usages
  • DialogActions: 5 usages
  • Popover: 1 usage
  • Drawer: 1 usage
  • Collapse: 5 usages
  • Total: 40 navigation component instances

Tasks

Menu Components

  • Generate DropdownMenu component suite
  • Create DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem
  • Set up menu positioning and keyboard navigation
  • Migrate Menu components (7 instances)
  • Replace MenuItem components (21 instances)

Dialog Components

  • Generate Dialog component suite
  • Create DialogTrigger, DialogContent, DialogHeader, DialogFooter
  • Set up modal behavior and focus management
  • Migrate Dialog components (3 instances)
  • Replace DialogTitle, DialogContent, DialogActions (9 instances)

Other Navigation

  • Generate Popover component
  • Create Sheet component for Drawer replacement
  • Generate Collapsible component
  • Set up proper animations and transitions

Files to Update

Menu Usage

  • User profile menus
  • Context menus
  • Action menus in tables
  • Navigation dropdowns
  • Settings menus

Dialog Usage

  • Confirmation dialogs
  • Form modals
  • Information dialogs
  • Delete confirmations
  • Settings modals

Other Components

  • Sidebar navigation (Drawer)
  • Expandable sections (Collapse)
  • Tooltip-like overlays (Popover)

Implementation Strategy

  1. Generate Components: Create all navigation shadcn components
  2. Menu Migration: Start with simple dropdown menus
  3. Dialog Migration: Convert modal dialogs
  4. Complex Navigation: Handle advanced navigation patterns
  5. Animations: Ensure smooth transitions

Acceptance Criteria

  • All Menu components use DropdownMenu
  • All Dialog components use shadcn Dialog
  • Keyboard navigation works correctly
  • Focus management is proper
  • Animations are smooth
  • Accessibility features maintained
  • All navigation tests pass

Component API Compatibility

Menu Component Mapping

// MUI -> shadcn
Menu -> DropdownMenu with DropdownMenuContent
MenuItem -> DropdownMenuItem
MenuList -> DropdownMenuContent

Dialog Component Mapping

// MUI -> shadcn
Dialog -> Dialog with DialogContent
DialogTitle -> DialogHeader with DialogTitle
DialogContent -> DialogContent body
DialogActions -> DialogFooter

Testing Requirements

  • Keyboard navigation testing
  • Focus management testing
  • Accessibility testing
  • Animation testing
  • Mobile interaction testing

Documentation

  • Navigation component patterns
  • Accessibility guidelines
  • Animation configuration

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions









      ApplySandwichStrip

      pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


      --- a PPN by Garber Painting Akron. With Image Size Reduction included!

      Fetched URL: https://github.com/coder/coder/issues/18998

      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy