LearnNewsExamplesServices
Frontmatter
id8159
titleRefactor Cross-Window Drag Logic to Dashboard SortZone
stateClosed
labels
airefactoringarchitecture
assigneestobiu
createdAtDec 27, 2025, 3:01 PM
updatedAtDec 27, 2025, 4:46 PM
githubUrlhttps://github.com/neomjs/neo/issues/8159
authortobiu
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[x] 8156 Implement Cross-Window Drag Coordinator
closedAtDec 27, 2025, 4:46 PM

Refactor Cross-Window Drag Logic to Dashboard SortZone

Closed v11.18.0 airefactoringarchitecture
tobiu
tobiu commented on Dec 27, 2025, 3:01 PM

Objective Extract cross-window and dashboard-connecting drag logic from src/draggable/container/SortZone.mjs (the generic base class) and move it into src/draggable/dashboard/SortZone.mjs (the specialized subclass).

Why? Connecting dashboards and handling cross-window coordination does not belong in the base container sort zone. The base class should remain focused on standard, single-window sortable container logic.

Scope of Work

  1. Move DragCoordinator Logic:
    • Move DragCoordinator registration/unregistration.
    • Move DragCoordinator event calls (onDragMove, onDragEnd hooks).
  2. Move Remote Drag Methods:
    • startRemoteDrag
    • onRemoteDragMove
    • onRemoteDragLeave
    • onRemoteDrop
    • onRemoteDropOut
  3. Move Window Drag Methods:
    • startWindowDrag
    • suspendWindowDrag
    • resumeWindowDrag
  4. Refactor onDragMove / onDragEnd:
    • Override these methods in dashboard/SortZone to handle the cross-window specific logic (e.g., enableProxyToPopup checks, coordinator signaling).
    • Clean up the base container/SortZone to remove these dependencies.
  5. Verify Dashboard Container:
    • Ensure src/dashboard/Container.mjs continues to function correctly with the refactored dashboard/SortZone.

Acceptance Criteria

  • src/draggable/container/SortZone.mjs no longer imports or uses DragCoordinator.
  • src/draggable/dashboard/SortZone.mjs contains all the remote/window drag logic.
  • Cross-window dragging between dashboards still works (or the architecture is ready for it).
tobiu added the ai label on Dec 27, 2025, 3:01 PM
tobiu added the refactoring label on Dec 27, 2025, 3:01 PM
tobiu added the architecture label on Dec 27, 2025, 3:01 PM
tobiu marked this issue as blocking #8156 on Dec 27, 2025, 3:01 PM
tobiu assigned to @tobiu on Dec 27, 2025, 3:02 PM
tobiu referenced in commit c19446c - "Refactor Cross-Window Drag Logic to Dashboard SortZone #8159" on Dec 27, 2025, 3:56 PM
tobiu
tobiu Dec 27, 2025, 4:46 PM

Input from gemini:

✦ Refactoring complete.

  • DragCoordinator logic moved to dashboard/SortZone.
  • Base container/SortZone cleaned up.
  • Cross-window logic separated from standard container logic.
tobiu closed this issue on Dec 27, 2025, 4:46 PM
tobiu referenced in commit ffb4590 - "Refactor Cross-Window Drag Logic to Dashboard SortZone #8159" on Dec 27, 2025, 11:46 PM