mirror of
https://github.com/colanode/colanode.git
synced 2025-12-16 19:57:46 +01:00
Add hard break node for editor (#177)
This commit is contained in:
14
package-lock.json
generated
14
package-lock.json
generated
@@ -9464,6 +9464,19 @@
|
|||||||
"@tiptap/pm": "^3.0.9"
|
"@tiptap/pm": "^3.0.9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@tiptap/extension-hard-break": {
|
||||||
|
"version": "3.0.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.0.9.tgz",
|
||||||
|
"integrity": "sha512-PWNYsUwVsMWt/R5/OWjfGb+7DQT0DvH+1owBimRq0pWZepg8qkz1jdPGgsRmUFyERRsXeEpgj3VaQfrgbyUfrA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"funding": {
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/ueberdosis"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@tiptap/core": "^3.0.9"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@tiptap/extension-horizontal-rule": {
|
"node_modules/@tiptap/extension-horizontal-rule": {
|
||||||
"version": "3.0.9",
|
"version": "3.0.9",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.0.9.tgz",
|
||||||
@@ -24873,6 +24886,7 @@
|
|||||||
"@tiptap/extension-code": "^3.0.9",
|
"@tiptap/extension-code": "^3.0.9",
|
||||||
"@tiptap/extension-code-block-lowlight": "^3.0.9",
|
"@tiptap/extension-code-block-lowlight": "^3.0.9",
|
||||||
"@tiptap/extension-document": "^3.0.9",
|
"@tiptap/extension-document": "^3.0.9",
|
||||||
|
"@tiptap/extension-hard-break": "^3.0.9",
|
||||||
"@tiptap/extension-horizontal-rule": "^3.0.9",
|
"@tiptap/extension-horizontal-rule": "^3.0.9",
|
||||||
"@tiptap/extension-italic": "^3.0.9",
|
"@tiptap/extension-italic": "^3.0.9",
|
||||||
"@tiptap/extension-link": "^3.0.9",
|
"@tiptap/extension-link": "^3.0.9",
|
||||||
|
|||||||
@@ -52,6 +52,7 @@
|
|||||||
"@tiptap/extension-code": "^3.0.9",
|
"@tiptap/extension-code": "^3.0.9",
|
||||||
"@tiptap/extension-code-block-lowlight": "^3.0.9",
|
"@tiptap/extension-code-block-lowlight": "^3.0.9",
|
||||||
"@tiptap/extension-document": "^3.0.9",
|
"@tiptap/extension-document": "^3.0.9",
|
||||||
|
"@tiptap/extension-hard-break": "^3.0.9",
|
||||||
"@tiptap/extension-horizontal-rule": "^3.0.9",
|
"@tiptap/extension-horizontal-rule": "^3.0.9",
|
||||||
"@tiptap/extension-italic": "^3.0.9",
|
"@tiptap/extension-italic": "^3.0.9",
|
||||||
"@tiptap/extension-link": "^3.0.9",
|
"@tiptap/extension-link": "^3.0.9",
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ import {
|
|||||||
UnderlineMark,
|
UnderlineMark,
|
||||||
DatabaseNode,
|
DatabaseNode,
|
||||||
AutoJoiner,
|
AutoJoiner,
|
||||||
|
HardBreakNode,
|
||||||
} from '@colanode/ui/editor/extensions';
|
} from '@colanode/ui/editor/extensions';
|
||||||
import { ToolbarMenu, ActionMenu } from '@colanode/ui/editor/menus';
|
import { ToolbarMenu, ActionMenu } from '@colanode/ui/editor/menus';
|
||||||
|
|
||||||
@@ -179,6 +180,7 @@ export const DocumentEditor = ({
|
|||||||
}),
|
}),
|
||||||
TextNode,
|
TextNode,
|
||||||
ParagraphNode,
|
ParagraphNode,
|
||||||
|
HardBreakNode,
|
||||||
Heading1Node,
|
Heading1Node,
|
||||||
Heading2Node,
|
Heading2Node,
|
||||||
Heading3Node,
|
Heading3Node,
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import {
|
|||||||
TrailingNode,
|
TrailingNode,
|
||||||
UnderlineMark,
|
UnderlineMark,
|
||||||
MentionExtension,
|
MentionExtension,
|
||||||
|
HardBreakNode,
|
||||||
} from '@colanode/ui/editor/extensions';
|
} from '@colanode/ui/editor/extensions';
|
||||||
import { ToolbarMenu } from '@colanode/ui/editor/menus';
|
import { ToolbarMenu } from '@colanode/ui/editor/menus';
|
||||||
|
|
||||||
@@ -56,6 +57,7 @@ export const MessageEditor = forwardRef<
|
|||||||
MessageNode,
|
MessageNode,
|
||||||
TextNode,
|
TextNode,
|
||||||
ParagraphNode,
|
ParagraphNode,
|
||||||
|
HardBreakNode,
|
||||||
CodeBlockNode,
|
CodeBlockNode,
|
||||||
TabKeymapExtension,
|
TabKeymapExtension,
|
||||||
PlaceholderExtension.configure({
|
PlaceholderExtension.configure({
|
||||||
|
|||||||
3
packages/ui/src/editor/extensions/hard-break.tsx
Normal file
3
packages/ui/src/editor/extensions/hard-break.tsx
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import { HardBreak } from '@tiptap/extension-hard-break';
|
||||||
|
|
||||||
|
export const HardBreakNode = HardBreak;
|
||||||
@@ -18,6 +18,7 @@ import { DividerNode } from '@colanode/ui/editor/extensions/divider';
|
|||||||
import { DropcursorExtension } from '@colanode/ui/editor/extensions/dropcursor';
|
import { DropcursorExtension } from '@colanode/ui/editor/extensions/dropcursor';
|
||||||
import { FileNode } from '@colanode/ui/editor/extensions/file';
|
import { FileNode } from '@colanode/ui/editor/extensions/file';
|
||||||
import { FolderNode } from '@colanode/ui/editor/extensions/folder';
|
import { FolderNode } from '@colanode/ui/editor/extensions/folder';
|
||||||
|
import { HardBreakNode } from '@colanode/ui/editor/extensions/hard-break';
|
||||||
import { Heading1Node } from '@colanode/ui/editor/extensions/heading1';
|
import { Heading1Node } from '@colanode/ui/editor/extensions/heading1';
|
||||||
import { Heading2Node } from '@colanode/ui/editor/extensions/heading2';
|
import { Heading2Node } from '@colanode/ui/editor/extensions/heading2';
|
||||||
import { Heading3Node } from '@colanode/ui/editor/extensions/heading3';
|
import { Heading3Node } from '@colanode/ui/editor/extensions/heading3';
|
||||||
@@ -77,4 +78,5 @@ export {
|
|||||||
DatabaseNode,
|
DatabaseNode,
|
||||||
AutoJoiner,
|
AutoJoiner,
|
||||||
MentionExtension,
|
MentionExtension,
|
||||||
|
HardBreakNode,
|
||||||
};
|
};
|
||||||
|
|||||||
10
packages/ui/src/editor/renderers/hard-break.tsx
Normal file
10
packages/ui/src/editor/renderers/hard-break.tsx
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { JSONContent } from '@tiptap/core';
|
||||||
|
|
||||||
|
interface HardBreakRendererProps {
|
||||||
|
node: JSONContent;
|
||||||
|
keyPrefix: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const HardBreakRenderer = (_: HardBreakRendererProps) => {
|
||||||
|
return <br />;
|
||||||
|
};
|
||||||
@@ -7,6 +7,7 @@ import { BulletListRenderer } from '@colanode/ui/editor/renderers/bullet-list';
|
|||||||
import { CodeBlockRenderer } from '@colanode/ui/editor/renderers/code-block';
|
import { CodeBlockRenderer } from '@colanode/ui/editor/renderers/code-block';
|
||||||
import { DocumentRenderer } from '@colanode/ui/editor/renderers/document';
|
import { DocumentRenderer } from '@colanode/ui/editor/renderers/document';
|
||||||
import { FileRenderer } from '@colanode/ui/editor/renderers/file';
|
import { FileRenderer } from '@colanode/ui/editor/renderers/file';
|
||||||
|
import { HardBreakRenderer } from '@colanode/ui/editor/renderers/hard-break';
|
||||||
import { Heading1Renderer } from '@colanode/ui/editor/renderers/heading1';
|
import { Heading1Renderer } from '@colanode/ui/editor/renderers/heading1';
|
||||||
import { Heading2Renderer } from '@colanode/ui/editor/renderers/heading2';
|
import { Heading2Renderer } from '@colanode/ui/editor/renderers/heading2';
|
||||||
import { Heading3Renderer } from '@colanode/ui/editor/renderers/heading3';
|
import { Heading3Renderer } from '@colanode/ui/editor/renderers/heading3';
|
||||||
@@ -76,6 +77,9 @@ export const NodeRenderer = ({
|
|||||||
.with('mention', () => (
|
.with('mention', () => (
|
||||||
<MentionRenderer node={node} keyPrefix={keyPrefix} />
|
<MentionRenderer node={node} keyPrefix={keyPrefix} />
|
||||||
))
|
))
|
||||||
|
.with('hardBreak', () => (
|
||||||
|
<HardBreakRenderer node={node} keyPrefix={keyPrefix} />
|
||||||
|
))
|
||||||
.otherwise(() => null)}
|
.otherwise(() => null)}
|
||||||
</MarkRenderer>
|
</MarkRenderer>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user