Skip to content

feat(plugins): add drag-and-drop reordering to plugin catalog (#604) - #1044

Open
annukumar123 wants to merge 3 commits into
imDarshanGK:mainfrom
annukumar123:feature/plugin-catalog-drag-and-drop-604
Open

feat(plugins): add drag-and-drop reordering to plugin catalog (#604)#1044
annukumar123 wants to merge 3 commits into
imDarshanGK:mainfrom
annukumar123:feature/plugin-catalog-drag-and-drop-604

Conversation

@annukumar123

Copy link
Copy Markdown
Contributor

Summary

Implements HTML5 drag-and-drop reordering for the plugin catalog workspace, allowing users to customize and persist their preferred plugin layout across sessions (#604).

Changes Made

  • Drag-and-Drop UX (PluginsPanel.jsx):
    • Added HTML5 draggable handlers (onDragStart, onDragOver, onDrop) to plugin chips.
    • Implemented visual feedback (cursor-grab, cursor-grabbing, and dashed outline during drag state).
    • Added safe guards for e.dataTransfer properties to handle mock/test environments cleanly.
  • State Persistence (PluginsPanel.jsx):
    • Reordered plugin ID lists are saved to localStorage under plugins-panel-order:${sessionId}.
    • On panel load, incoming API plugins are sorted according to the stored sequence.
  • Unit Testing (PluginsPanel.test.jsx):
    • Added test suite covering initial rendering, drag-and-drop interaction, order persistence, and restoring custom order on mount.

Verification

  • Ran Vitest suite with JSDOM: npx vitest run src/components/PluginsPanel.test.jsx
  • Result: 4 passed (100%) with zero unhandled errors or warnings.

Fixes #604

@vercel

vercel Bot commented Jul 29, 2026

Copy link
Copy Markdown

@annukumar123 is attempting to deploy a commit to the Darshan's projects Team on Vercel.

A member of the Team first needs to authorize it.

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.

Add drag-and-drop ordering to plugin catalog

1 participant