Repository navigation
Enable playlist tree drag and drop - #19
Merged
Merged
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Root playlist reordering uses indices that conflict with the SDK’s inclusion of the hidden cloud-sync playlist, producing incorrect ordering, and neither reordering nor reparenting has a keyboard-operable alternative.
2 open issues
What changed in this PR
Adds sidebar drag-and-drop for reordering playlists and folders or moving them into folders, routing changes through the native library service to the linked SDK transaction.
Changes:
- Adds draggable tree rows, drop-target positioning, and visual feedback.
- Wires
playlist.treeMovethrough the renderer, IPC, and native layers. - Adds a native service test confirming that moves return the refreshed tree.
| File | Description |
|---|---|
native/crates/es-node/src/library.rs |
Exposes and dispatches the native tree-move operation. |
native/crates/es-engine/src/library.rs |
Calls the SDK transaction and tests tree refresh. |
app/src/renderer/src/lib/library.svelte.ts |
Defines the drag type and applies refreshed playlists after moves. |
app/src/renderer/src/lib/components/Sidebar.svelte |
Implements tree dragging, drop positioning, and indicators. |
app/src/renderer/src/lib/api.ts |
Adds the renderer tree-move API call. |
app/src/preload/engine.ts |
Defines tree-move command parameters. |
app/src/main/library.ts |
Routes the command to the native library. |
app/src/main/audio/native.ts |
Declares the native tree-move interface. |
Review effort: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Enable dragging playlists and folders in the sidebar to reorder siblings or move items into folders. The app routes moves through the native library service; the SDK transaction validates folder targets and cycles, updates sibling sequence values, and keeps
masterPlaylists6.xmlin sync.The SDK implementation is in claw1200/es-rekordbox-sdk#4, which must merge before this PR can build against the updated submodule pointer.
Validation: app production build, app typecheck, SDK tests, native service test, and N-API compile pass.
npm run lintstill reports two existing errors inapp/tests/media.test.mjs.