Skip to content

feat: touch-and-hold block dragging on mobile - #3309

Open
nperez0111 wants to merge 4 commits into
fix/issue-3150-node-view-state-resetfrom
feat/mobile-whole-block-dragging
Open

nperez0111 wants to merge 4 commits into
fix/issue-3150-node-view-state-resetfrom
feat/mobile-whole-block-dragging

Conversation

@nperez0111

@nperez0111 nperez0111 commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #3299. Fixes #1693.

From side-menu dragging…

We first tried fixing touch dragging through the side menu. It worked, but the small handle was still awkward to find and grab on mobile.

ios18-final-quick-drag.mp4

We experimented with a different layout to fit larger touch targets. Easier to hit, but still required digging around for the side menu.

ios26-touch-targets-final.mp4

…to whole-block dragging

After seeing Notion’s whole-block interaction, we tried holding the block itself. This felt much better on iOS, so that’s the direction implemented here: tap to edit, hold to lift, and drag near the edge to scroll.

pr-current-pickup.mp4
pr-current-editing.mp4
Other experiments: original handle behavior and native whole-block dragging

Original quick handle swipe: the page scrolls instead of moving the block.

ios18-quick-drag.mp4

Native whole-block dragging with a tap-to-edit shim worked in this recording, but proved unreliable in manual testing. The final implementation uses a custom hold gesture instead.

ios26-surface-native-with-tap-edit.mp4

Supporting changes preserve selections after drops, avoid opening the keyboard for touch block moves, share theme/keyboard utilities, and clean up cancelled drags. Desktop handle dragging remains native.

Validation: 372 browser tests passed (26 existing skips), 18 unit tests passed, plus native iOS 26.4 simulator checks. Recordings use native touch input; document contents and IDs were checked after each move.

@vercel

vercel Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
blocknote Ready Ready Preview Nov 6, 2026 12:03pm UTC
blocknote-website Ready Ready Preview Nov 6, 2026 12:03pm UTC

Request Review

@coderabbitai

coderabbitai Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a7102705-abe4-4b02-9642-de1d1aeff78b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@pkg-pr-new

pkg-pr-new Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

@blocknote/ariakit

npm i https://pkg.pr.new/@blocknote/ariakit@3309

@blocknote/code-block

npm i https://pkg.pr.new/@blocknote/code-block@3309

@blocknote/core

npm i https://pkg.pr.new/@blocknote/core@3309

@blocknote/diagram-block

npm i https://pkg.pr.new/@blocknote/diagram-block@3309

@blocknote/mantine

npm i https://pkg.pr.new/@blocknote/mantine@3309

@blocknote/math-block

npm i https://pkg.pr.new/@blocknote/math-block@3309

@blocknote/react

npm i https://pkg.pr.new/@blocknote/react@3309

@blocknote/server-util

npm i https://pkg.pr.new/@blocknote/server-util@3309

@blocknote/shadcn

npm i https://pkg.pr.new/@blocknote/shadcn@3309

@blocknote/xl-ai

npm i https://pkg.pr.new/@blocknote/xl-ai@3309

@blocknote/xl-docx-exporter

npm i https://pkg.pr.new/@blocknote/xl-docx-exporter@3309

@blocknote/xl-email-exporter

npm i https://pkg.pr.new/@blocknote/xl-email-exporter@3309

@blocknote/xl-multi-column

npm i https://pkg.pr.new/@blocknote/xl-multi-column@3309

@blocknote/xl-odt-exporter

npm i https://pkg.pr.new/@blocknote/xl-odt-exporter@3309

@blocknote/xl-pdf-exporter

npm i https://pkg.pr.new/@blocknote/xl-pdf-exporter@3309

@blocknote/xl-typst-exporter

npm i https://pkg.pr.new/@blocknote/xl-typst-exporter@3309

commit: eb47f07

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://TypeCellOS.github.io/BlockNote/pr-preview/pr-3309/

Built to branch gh-pages at 2026-11-06 13:53 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

This branch was successfully deployed

2 active deployments
Preview – blocknote-website — eb47f070 Deployed Nov 6, 2026 by vercel[bot]
Preview – blocknote — eb47f070 Deployed Nov 6, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant