Skip to content

feat: drag/drop entities + move/copy + fix canvas mention nodes#1002

Merged
gbirman merged 40 commits intomainfrom
gab/m-5363-drag-soup-entry-into-folder-as-a-move-operation
Jan 15, 2026
Merged

feat: drag/drop entities + move/copy + fix canvas mention nodes#1002
gbirman merged 40 commits intomainfrom
gab/m-5363-drag-soup-entry-into-folder-as-a-move-operation

Conversation

@gbirman
Copy link
Copy Markdown
Contributor

@gbirman gbirman commented Jan 14, 2026

Summary

  • fixes drag/drop for entities so you can drag them across splits like we used to be able to.
  • this allows us to drag entities into open project blocks to move them.
  • holding alt will copy (projects don't support copy so alt will move)
  • adds conditional display logic.
  • removes droppable from entities so they're only draggable which means you can't drop into a folder entity row, but this logic is cleaner.
  • deprecates a lot of old unused codepaths.
  • fixes a bug with canvas where it wouldn't save if you moved in/out after a change.
  • also supports new mentions instead of just files, so you can drag channels/emails/tasks etc. in and it will show the correct icons and link to those entities, while preserving backwards compatibility.
  • fixes bulk rename.
  • also fixes the mutation operations for updating project breadcrumbs.
  • adsd toast for failed copy/move operations
  • makes the uplaod/copy/move to folder overlay look like the one we have in soup

TODO as followup: i'd like to get the access status ahead of time so we don't try to move/display a droppable if you don't have edit access on shared project. atm that code returns a 401 so a) we're doing unnecessary jwt refreshes b) we only show a generic failure toast without indicating that you are unauthorized to do that operation because you don't have edit access which would make it easier for the user to understand

Screenshots, GIFs, and Videos

CleanShot.2026-01-14.at.16.09.30.mp4

@gbirman gbirman requested a review from a team as a code owner January 14, 2026 21:04
@linear
Copy link
Copy Markdown

linear bot commented Jan 14, 2026

}
});

// Get icon type using the same logic as EntityWithEverything
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's a bunch of logic bewteen entitywitheverything and previewitem we can probably share, maybe im missing stuff

@gbirman gbirman requested review from sedson and synoet January 14, 2026 21:17
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 14, 2026

@claude
Copy link
Copy Markdown
Contributor

claude bot commented Jan 15, 2026

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

Copy link
Copy Markdown
Contributor

@sedson sedson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did not look super close at project drop. general cleanups, md and canvas LGTM

id: draggable.data.id,
itemName: draggable.data.name,
});
const handleKeyDown = (e: KeyboardEvent) => {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: our hotkey system has a global pressedKeys signal
packages/core/hotkey/state.ts

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

true, i like scoping it to the dnd provider though but can do as a follow up

const [visible, setVisible] = createSignal(false);

// Flush pending saves on cleanup to prevent data loss when navigating away
onCleanup(() => {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice

@gbirman gbirman merged commit 8859370 into main Jan 15, 2026
32 of 35 checks passed
@gbirman gbirman deleted the gab/m-5363-drag-soup-entry-into-folder-as-a-move-operation branch January 15, 2026 21:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants