Skip to content

refactor(Table): 移除自定义表格实现,改用tiptap原生扩展#318

Merged
xun082 merged 1 commit into
xun082:mainfrom
Hemomoo:feat-replace-table
Mar 13, 2026
Merged

refactor(Table): 移除自定义表格实现,改用tiptap原生扩展#318
xun082 merged 1 commit into
xun082:mainfrom
Hemomoo:feat-replace-table

Conversation

@Hemomoo

@Hemomoo Hemomoo commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

PR 描述

PR 类型

  • 🐛 Bug 修复
  • ✨ 新功能
  • 💄 UI/UX 改进
  • ♻️ 重构
  • 🚀 性能优化
  • 📝 文档更新
  • 🔄 其他

Issue 关联

Closes #

其他信息

重构表格相关代码,删除自定义实现的Table、TableCell、TableRow等组件及相关菜单工具,改为直接使用@tiptap/extension-table提供的原生实现。简化代码结构,提升维护性。

- 删除自定义表格组件及工具类
- 更新表格样式配置
- 移除不再需要的表格菜单组件
- 调整相关导入路径
@netlify

netlify Bot commented Mar 13, 2026

Copy link
Copy Markdown

Deploy Preview for ornate-blancmange-89db6b failed. Why did it fail? →

Name Link
🔨 Latest commit ccd3d79
🔍 Latest deploy log https://app.netlify.com/projects/ornate-blancmange-89db6b/deploys/69b3b8cebed51d00088f389b

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

本次PR旨在通过将自定义的表格实现替换为Tiptap原生提供的表格扩展,来重构应用程序中的表格功能。这一改变将显著简化代码结构,提高系统的可维护性,并确保表格功能与Tiptap生态系统更好地集成,从而提供更稳定和标准化的表格编辑体验。

Highlights

  • 表格实现重构: 将自定义的表格实现替换为Tiptap原生提供的表格扩展,以简化代码结构并提高可维护性。
  • 移除自定义组件: 删除了所有自定义的表格组件(Table、TableCell、TableRow、TableHeader)及其相关的菜单和工具类。
  • 更新扩展配置: 更新了表格扩展的导入路径和配置,现在直接使用Tiptap的TableKit,并启用了表格可调整大小的功能。
  • 简化节点选择逻辑: 简化了isCustomNodeSelected函数,移除了对自定义表格节点和表格操作手柄的检查,使其更通用。
Changelog
  • apps/DocFlow/src/app/docs/[room]/page.tsx
    • 移除了自定义表格菜单组件的导入和使用。
  • apps/DocFlow/src/components/menus/TextMenu/hooks/useTextMenuStates.ts
    • 简化了useTextmenuStates钩子中的shouldShow逻辑,不再依赖from参数和DOM节点检查。
  • apps/DocFlow/src/extensions/Table/Cell.ts
    • 删除了自定义的TableCell扩展文件。
  • apps/DocFlow/src/extensions/Table/Header.ts
    • 删除了自定义的TableHeader扩展文件。
  • apps/DocFlow/src/extensions/Table/Row.ts
    • 删除了自定义的TableRow扩展文件。
  • apps/DocFlow/src/extensions/Table/Table.ts
    • 删除了自定义的Table扩展文件。
  • apps/DocFlow/src/extensions/Table/index.ts
    • 更新了表格相关扩展的导出,直接从@tiptap/extension-table@tiptap/extension-table-row@tiptap/extension-table-header导入。
  • apps/DocFlow/src/extensions/Table/menus/TableCell/index.tsx
    • 删除了自定义的TableCellMenu组件文件。
  • apps/DocFlow/src/extensions/Table/menus/TableColumn/index.tsx
    • 删除了自定义的TableColumnMenu组件文件。
  • apps/DocFlow/src/extensions/Table/menus/TableColumn/utils.ts
    • 删除了自定义的TableColumnMenu工具文件。
  • apps/DocFlow/src/extensions/Table/menus/TableMenu/index.tsx
    • 删除了自定义的TableMenu组件文件。
  • apps/DocFlow/src/extensions/Table/menus/TableRow/index.tsx
    • 删除了自定义的TableRowMenu组件文件。
  • apps/DocFlow/src/extensions/Table/menus/TableRow/utils.ts
    • 删除了自定义的TableRowMenu工具文件。
  • apps/DocFlow/src/extensions/Table/menus/index.tsx
    • 删除了表格菜单的入口文件。
  • apps/DocFlow/src/extensions/Table/utils.ts
    • 删除了自定义表格相关的工具函数文件。
  • apps/DocFlow/src/extensions/extension-kit.ts
    • 将自定义的Table扩展替换为Tiptap的TableKit,并配置了可调整大小的表格。
  • apps/DocFlow/src/extensions/index.ts
    • 更新了扩展的导出,包含了TableKit
  • apps/DocFlow/src/styles/partials/table.css
    • 移除了与自定义表格单元格操作手柄相关的CSS样式。
  • apps/DocFlow/src/utils/editor/is-custom-node-selected.ts
    • 移除了isTableGripSelected函数,并从isCustomNodeSelected中删除了所有自定义表格节点类型的检查。
Activity
  • 目前没有关于此拉取请求的评论、审查或进展活动。
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

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.

Code Review

这是一个很棒的重构!将自定义的表格实现替换为 Tiptap 的原生扩展,极大地简化了代码库,并提高了可维护性。大部分的自定义代码和相关组件都已正确移除。我只发现了一个小问题,在 table.css 文件中,一些与旧的自定义表格实现相关的 CSS 样式没有被完全删除,变成了死代码。请看我在文件中的具体评论。除此之外,其他修改看起来都很好。

I am having trouble creating individual review comments. Click here to see my feedback.

apps/DocFlow/src/styles/partials/table.css (67-78)

medium

感谢移除这部分不再需要的样式。

不过,在本次重构中,似乎有一些相关的 CSS 规则被遗漏了,它们也属于旧的自定义表格实现,现在已经成为死代码。为了保持代码整洁,建议将它们一并移除。

需要移除的规则包括:

  • .ProseMirror .tableWrapper::after (和 :hover 状态)
  • .ProseMirror .tableWrapper::before (和 :hover 状态)
  • .dark .ProseMirror table td a.right
  • .ProseMirror table td.has-focus a.right
  • .ProseMirror table td a.right::before (和 .dark 版本)

这些样式都与已被删除的自定义表格功能(如单元格菜单、点击添加行/列)相关联。

@xun082 xun082 merged commit 771c34b into xun082:main Mar 13, 2026
0 of 6 checks passed
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