feat: draggable chat tabs for reordering #168

Closed
opened 2026-02-25 15:02:09 -08:00 by hikari · 0 comments
Owner

Summary

Allow users to drag and drop chat tabs to reorder them however they like.

Proposed Behaviour

  • Tabs should be draggable via mouse (drag handle or drag the whole tab)
  • Dropping a tab between two others reorders them accordingly
  • The active tab remains active after reordering
  • Tab order should persist across app restarts (saved in the conversations store or config)

Implementation Notes

  • Use the native HTML5 drag-and-drop API (draggable, ondragstart, ondragover, ondrop) — no extra dependencies needed
  • Track tab order as an array of conversation IDs in the conversations store
  • On dragstart, record the source tab ID; on drop, splice it into the new position
  • Show a visual drop indicator (e.g. a highlighted gap or accent-coloured line) between tabs whilst dragging
  • Persist the order to config/store so it survives restarts

Acceptance Criteria

  • Tabs can be dragged and dropped to reorder
  • Active tab is preserved after reordering
  • Drop indicator is visible during drag
  • Order persists across app restarts
  • Add tests for the reordering logic

This issue was created with help from Hikari~ 🌸

## Summary Allow users to drag and drop chat tabs to reorder them however they like. ## Proposed Behaviour - Tabs should be draggable via mouse (drag handle or drag the whole tab) - Dropping a tab between two others reorders them accordingly - The active tab remains active after reordering - Tab order should persist across app restarts (saved in the conversations store or config) ## Implementation Notes - Use the native HTML5 drag-and-drop API (`draggable`, `ondragstart`, `ondragover`, `ondrop`) — no extra dependencies needed - Track tab order as an array of conversation IDs in the conversations store - On `dragstart`, record the source tab ID; on `drop`, splice it into the new position - Show a visual drop indicator (e.g. a highlighted gap or accent-coloured line) between tabs whilst dragging - Persist the order to config/store so it survives restarts ## Acceptance Criteria - [ ] Tabs can be dragged and dropped to reorder - [ ] Active tab is preserved after reordering - [ ] Drop indicator is visible during drag - [ ] Order persists across app restarts - [ ] Add tests for the reordering logic ✨ This issue was created with help from Hikari~ 🌸
naomi closed this issue 2026-02-25 22:55:48 -08:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: nhcarrigan/hikari-desktop#168