Skip to content

Commit ceb316e

Browse files
committed
init speaker node
1 parent c4ae5e3 commit ceb316e

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

packages/tiptap/src/transcript/extensions.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,3 +126,34 @@ export const WordSplit = Extension.create({
126126
];
127127
},
128128
});
129+
130+
export const SpeakerSplit = Extension.create({
131+
name: "speakerSplit",
132+
133+
addProseMirrorPlugins() {
134+
return [
135+
new Plugin({
136+
key: new PluginKey("hypr-speaker-split"),
137+
props: {
138+
handleKeyDown(view, event) {
139+
if (
140+
event.key === "Enter"
141+
&& !event.ctrlKey
142+
&& !event.metaKey
143+
&& !event.altKey
144+
) {
145+
const { state } = view;
146+
const { selection } = state;
147+
148+
if (!selection.empty) {
149+
return false;
150+
}
151+
}
152+
153+
return false;
154+
},
155+
},
156+
}),
157+
];
158+
},
159+
});

packages/tiptap/src/transcript/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Text from "@tiptap/extension-text";
55
import { EditorContent, useEditor } from "@tiptap/react";
66
import { forwardRef, useEffect } from "react";
77

8-
import { WordSplit } from "./extensions";
8+
import { SpeakerSplit, WordSplit } from "./extensions";
99
import { SpeakerNode, WordNode } from "./nodes";
1010

1111
import "../styles/transcript.css";
@@ -17,6 +17,7 @@ export const extensions = [
1717
SpeakerNode,
1818
WordNode,
1919
WordSplit,
20+
SpeakerSplit,
2021
];
2122

2223
interface TranscriptEditorProps {

0 commit comments

Comments
 (0)