From 47b78539b651208ebc00757cf35dc3fd4fa73f7a Mon Sep 17 00:00:00 2001
From: Aaryan Khandelwal <aaryankhandu123@gmail.com>
Date: Fri, 18 Oct 2024 16:55:30 +0530
Subject: [PATCH] chore: updated table extensions

---
 .../editor/src/core/extensions/core-without-props.ts |  7 ++-----
 packages/editor/src/core/extensions/extensions.tsx   | 10 ++--------
 .../src/core/extensions/read-only-extensions.tsx     | 10 ++--------
 .../editor/src/core/extensions/table/extension.tsx   | 12 ++++++++++++
 packages/editor/src/core/extensions/table/index.ts   |  1 +
 packages/editor/src/core/extensions/todo-list.ts     |  3 ++-
 6 files changed, 21 insertions(+), 22 deletions(-)
 create mode 100644 packages/editor/src/core/extensions/table/extension.tsx

diff --git a/packages/editor/src/core/extensions/core-without-props.ts b/packages/editor/src/core/extensions/core-without-props.ts
index c06cd732ceb..695363b6770 100644
--- a/packages/editor/src/core/extensions/core-without-props.ts
+++ b/packages/editor/src/core/extensions/core-without-props.ts
@@ -13,7 +13,7 @@ import { IssueWidgetWithoutProps } from "./issue-embed/issue-embed-without-props
 import { CustomMentionWithoutProps } from "./mentions/mentions-without-props";
 import { CustomQuoteExtension } from "./quote";
 import { CustomStarterKit } from "./starter-kit";
-import { TableHeader, TableCell, TableRow, Table } from "./table";
+import { CustomTableExtension } from "./table";
 import { CustomTodoListExtension } from "./todo-list";
 
 export const CoreEditorExtensionsWithoutProps: (Extension<any, any> | Node<any, any> | Mark<any, any>)[] = [
@@ -32,10 +32,7 @@ export const CoreEditorExtensionsWithoutProps: (Extension<any, any> | Node<any,
   ...CustomTodoListExtension(),
   CustomCodeInlineExtension,
   CustomCodeBlockExtensionWithoutProps,
-  Table,
-  TableHeader,
-  TableCell,
-  TableRow,
+  ...CustomTableExtension,
   CustomMentionWithoutProps(),
   CustomColorExtension,
 ];
diff --git a/packages/editor/src/core/extensions/extensions.tsx b/packages/editor/src/core/extensions/extensions.tsx
index 1f6de608b9c..04d33e88250 100644
--- a/packages/editor/src/core/extensions/extensions.tsx
+++ b/packages/editor/src/core/extensions/extensions.tsx
@@ -17,15 +17,12 @@ import {
   CustomPlaceholderExtension,
   CustomQuoteExtension,
   CustomStarterKit,
+  CustomTableExtension,
   CustomTodoListExtension,
   CustomTypographyExtension,
   DropHandlerExtension,
   ImageExtension,
   ListKeymap,
-  Table,
-  TableCell,
-  TableHeader,
-  TableRow,
 } from "@/extensions";
 // types
 import { IMentionHighlight, IMentionSuggestion, TFileHandler } from "@/types";
@@ -72,10 +69,7 @@ export const CoreEditorExtensions = (args: TArguments): (Extension<any, any> | N
       transformPastedText: true,
       breaks: true,
     }),
-    Table,
-    TableHeader,
-    TableCell,
-    TableRow,
+    ...CustomTableExtension,
     CustomMention({
       mentionSuggestions: mentionConfig.mentionSuggestions,
       mentionHighlights: mentionConfig.mentionHighlights,
diff --git a/packages/editor/src/core/extensions/read-only-extensions.tsx b/packages/editor/src/core/extensions/read-only-extensions.tsx
index 16838fb50ba..633ab245228 100644
--- a/packages/editor/src/core/extensions/read-only-extensions.tsx
+++ b/packages/editor/src/core/extensions/read-only-extensions.tsx
@@ -12,16 +12,13 @@ import {
   ReadOnlyImageExtension,
   CustomCodeBlockExtension,
   CustomCodeInlineExtension,
-  TableHeader,
-  TableCell,
-  TableRow,
-  Table,
   CustomMention,
   HeadingListExtension,
   CustomReadOnlyImageExtension,
   CustomColorExtension,
   CustomStarterKit,
   CustomTodoListExtension,
+  CustomTableExtension,
 } from "@/extensions";
 // types
 import { IMentionHighlight, TFileHandler } from "@/types";
@@ -67,10 +64,7 @@ export const CoreReadOnlyEditorExtensions = (
       html: true,
       transformCopiedText: true,
     }),
-    Table,
-    TableHeader,
-    TableCell,
-    TableRow,
+    ...CustomTableExtension,
     CustomMention({
       mentionHighlights: mentionConfig.mentionHighlights,
       readOnly: true,
diff --git a/packages/editor/src/core/extensions/table/extension.tsx b/packages/editor/src/core/extensions/table/extension.tsx
new file mode 100644
index 00000000000..be6cfc0cd3a
--- /dev/null
+++ b/packages/editor/src/core/extensions/table/extension.tsx
@@ -0,0 +1,12 @@
+import { Extension, Mark, Node } from "@tiptap/core";
+import { Table } from "./table";
+import { TableCell } from "./table-cell";
+import { TableHeader } from "./table-header";
+import { TableRow } from "./table-row";
+
+export const CustomTableExtension: (Extension<any, any> | Node<any, any> | Mark<any, any>)[] = [
+  Table,
+  TableHeader,
+  TableCell,
+  TableRow,
+];
diff --git a/packages/editor/src/core/extensions/table/index.ts b/packages/editor/src/core/extensions/table/index.ts
index 2277e09ae45..a6c49c98624 100644
--- a/packages/editor/src/core/extensions/table/index.ts
+++ b/packages/editor/src/core/extensions/table/index.ts
@@ -2,3 +2,4 @@ export * from "./table";
 export * from "./table-cell";
 export * from "./table-header";
 export * from "./table-row";
+export * from "./extension";
diff --git a/packages/editor/src/core/extensions/todo-list.ts b/packages/editor/src/core/extensions/todo-list.ts
index 580f1021dfe..3c8a9e3a82e 100644
--- a/packages/editor/src/core/extensions/todo-list.ts
+++ b/packages/editor/src/core/extensions/todo-list.ts
@@ -1,3 +1,4 @@
+import { Extension, Mark, Node } from "@tiptap/core";
 import TaskItem from "@tiptap/extension-task-item";
 import TaskList from "@tiptap/extension-task-list";
 // helpers
@@ -7,7 +8,7 @@ type Props = {
   readOnly?: boolean;
 };
 
-export const CustomTodoListExtension = (props?: Props) => {
+export const CustomTodoListExtension = (props?: Props): (Extension<any, any> | Node<any, any> | Mark<any, any>)[] => {
   const { readOnly } = props;
 
   return [