[WIKI-465] fix : Add new node on click of doc end (#7063)

* fix : handle last node

* fix : handle unexpected node

* remove logs

* feat: handle focus

---------

Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>
This commit is contained in:
Vipin Chaudhary 2025-06-19 17:17:56 +05:30 committed by GitHub
parent 2b7a17b484
commit 24e57009af
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -53,17 +53,14 @@ export const EditorContainer: FC<EditorContainerProps> = (props) => {
const lastNodePos = editor.state.doc.resolve(Math.max(0, docSize - 2)); const lastNodePos = editor.state.doc.resolve(Math.max(0, docSize - 2));
const lastNode = lastNodePos.node(); const lastNode = lastNodePos.node();
// Check if the last node is a not paragraph // Check if its last node and add new node
if (lastNode && lastNode.type.name !== CORE_EXTENSIONS.PARAGRAPH) { if (lastNode) {
// If last node is not a paragraph, insert a new paragraph at the end const isLastNodeEmptyParagraph = lastNode.type.name === CORE_EXTENSIONS.PARAGRAPH && lastNode.content.size === 0;
const endPosition = editor?.state.doc.content.size; // Only insert a new paragraph if the last node is not an empty paragraph and not a doc node
editor?.chain().insertContentAt(endPosition, { type: CORE_EXTENSIONS.PARAGRAPH }).run(); if (!isLastNodeEmptyParagraph && lastNode.type.name !== "doc") {
const endPosition = editor?.state.doc.content.size;
// Focus the newly added paragraph for immediate editing editor?.chain().insertContentAt(endPosition, { type: "paragraph" }).focus("end").run();
editor }
.chain()
.setTextSelection(endPosition + 1)
.run();
} }
} catch (error) { } catch (error) {
console.error("An error occurred while handling container click to insert new empty node at bottom:", error); console.error("An error occurred while handling container click to insert new empty node at bottom:", error);