Repository navigation
[6.x] Drag assets and folders onto breadcrumbs - #15677
Merged
jackmcdade merged 4 commits intoOct 22, 2026
Merged
Conversation
jasonvarga
force-pushed
the
15677-drag-to-breadcrumbs
branch
from
October 20, 2026 20:41
623662b to
946b9c2
Compare
- Parent breadcrumbs accept drops when the dragged item can be moved (and the current folder too while searching) - Browser owns the move: spinners on the moving items, a "Moved to :folder" toast, and the progress bar until every move has settled - Moved assets stay selected under their new IDs, via the action's replaceInSelections callback, applied with the refreshed listing - Folders only accept movable items, can't be dropped onto themselves, and items already in the destination are skipped - List view outlines the hovered folder's icon and name, like the breadcrumbs
Rendering the overlay on dragstart changed the DOM under the drag source, which made the browser cancel the drag. Only show it while moving, and dim the tile during the drag instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jackmcdade
force-pushed
the
15677-drag-to-breadcrumbs
branch
from
October 22, 2026 18:44
946b9c2 to
3caa1a7
Compare
Dropping assets onto a folder or breadcrumb now animates straight away instead of waiting on the server. The items fade out and the grid closes up, while the destination folder opens, the files drop in, and it stays open until the move finishes before snapping shut. Breadcrumbs switch to the open folder icon while they receive a drop. If the move fails, the folder closes and the items come back. Dragging a selected asset now moves the rest of the selection with it, and the folder animation shows a bundle of up to three of them.
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.
Depends on #15676.
Description of the Problem
You can drag assets deeper into subfolders, but there's no way to drag one back up. To move an asset into a parent folder, or back to the top, you have to use the Move action instead.
Moving something also didn't feel great. The item showed a spinner, waited on the server, then vanished when the listing refreshed. You could only drag one asset at a time.
What this PR Does
The breadcrumbs above the asset browser are now drop targets, so you can drag an asset or folder onto any parent folder, including "All".
Moving multiple assets
Dragging a selected asset now brings the rest of the selection with it. Dragging an unselected asset still moves just that one. Anything in the selection you can't move stays behind.
Drop animation
Dropping onto a folder plays a small macOS-style animation. The folder icon opens, the file drops in, and it snaps shut. When you move several files, it shows a fanned bundle of up to three thumbnails. In list view the same animation plays on the smaller folder icon, and a breadcrumb shows the open-folder icon while its folder is receiving files. The animation respects
prefers-reduced-motion.Optimistic UI
The UI responds straight away instead of waiting on the server:
If the move fails, the items come back, the folder closes, and an error toast explains why. In search results, moved items stay in the listing, dimmed, because the results span every folder. Concurrent drops are tracked separately, so dropping into two folders, or twice into the same one, animates correctly.
The move itself lives in
Browserrather than in the grid and list components, so it carries on correctly if you switch views mid-move. Each move is settled when the refreshed listing comes back, and the selection is updated in that same render. Moved assets get new IDs, so the action's ownreplaceInSelectionscallback keeps them selected rather than them silently dropping out (which matters in the asset picker, where the selection is what you're picking).Tests cover which items a drag carries and the move flow's timing: when the folder opens and closes, failures, and concurrent drops.
drag-to-breadcrumbs.mp4
How to Reproduce