Skip to content

feat: add simple table menus and undoable conversions - #608

Merged
appflowy merged 3 commits into
mainfrom
feat/simple-table-menus-and-history
Oct 7, 2026
Merged

appflowy merged 3 commits into
mainfrom
feat/simple-table-menus-and-history

Conversation

@annieappflowy

@annieappflowy annieappflowy commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Simple tables lacked header switches and a block menu, and converting or deleting a table could lose displayed inline values or leave users unable to restore their content with Undo. This adds the Figma menu designs and makes these actions reversible while preserving content, layout, and keyboard focus.

  • Add header row/column switches, menu icons, correct dark-mode header fills, regular-weight block actions, and red Delete hover states.
  • Add the six-dot block menu with duplication, deletion, block links, sizing, alignment, and conversion actions.
  • Clip blue selection borders to the table's scroll container and reveal them during horizontal scrolling.
  • Group conversions into one Undo/Redo step, read current content when actions run, and restore databases trashed by this editor when history reinserts their blocks.
  • Preserve mention names, dates, page titles, and inline formulas when converting to text or importing a database.
  • Restore focus after deletion, group a mixed block selection into one Undo/Redo entry, and restore blocks in document order even when their creation order differs.
  • Make the table's plus button insert a paragraph below the table, or above with Alt-click, for both empty and populated tables.
  • Add bottom rows without scrolling when they already fit; reveal only the overflow when space runs out and preserve horizontal positioning.
  • Add regression tests and a dedicated CI group for all four simple-table BDD features.

Menu styling and colors are scoped to simple tables. Database deletion/restoration handling is shared by embedded database blocks generally. Yjs-to-Slate block insertion now follows document order for Undo and remote transactions, including non-table blocks. Local dev-server port and proxy settings are excluded from this PR.

Validation

  • 56 focused Jest tests passed across table menus, inline conversions, deletion focus/history, layout observers, database lifecycle handling, and Yjs restoration order. The full Slate/Yjs unit suite also passed.
  • All 36 Chromium BDD scenarios passed across the four simple-table feature files. Coverage includes keyboard Undo/Redo, deletion focus, mixed-selection deletion in both orders, plus-button insertion for empty/populated tables, inline-value conversions, header persistence, horizontal selection, and bottom-row scrolling in light/dark themes.
  • Application type checking and scoped type checks of the changed unit tests and all four BDD step files passed.
  • The full CI lint command (pnpm run lint, including application type checking and ESLint) passed, along with scoped ESLint checks for the new BDD step files.
  • BDD generation and test discovery succeeded: 36 scenarios across four feature files. The CI workflow YAML and generated feature paths were checked.
  • Multi-client backend synchronization and additional browser/OS combinations have not been exercised for these changes.

Checklist

General

  • I've included relevant documentation or comments for the changes introduced.
  • I've tested the changes in multiple environments (e.g., different browsers, operating systems).

Testing

  • I've added or updated tests to validate the changes introduced for AppFlowy Web.

Feature-Specific

  • For feature additions, I've added a preview (video, screenshot, or demo) in the Feature Preview section.
  • I've verified that this feature integrates with existing table editing and conversion functionality.

Design references

Row and column menus, block menu, and selection state.

@sourcery-ai

sourcery-ai Bot commented Oct 6, 2026

Copy link
Copy Markdown

Sorry @annieappflowy, your pull request is larger than the review limit of 150,000 diff characters

@appflowy
appflowy merged commit 97bef18 into main Oct 7, 2026
21 checks passed
@appflowy
appflowy deleted the feat/simple-table-menus-and-history branch October 7, 2026 01:46
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.

2 participants