Add a button that users can click to add comments after selecting text.
When clicking a button, the browser moves focus to the button which clears the editor selection. You must save the selection on mousedown (before focus changes) and restore it before adding the comment.
React / Next.js
Other Frameworks
import { useCallback, useRef } from 'react';import { addComment } from '@veltdev/quill-velt-comments';// Inside your QuillEditor component from Step 3:const savedSelectionRef = useRef(null);const handleAddComment = useCallback(() => { if (quill) { if (savedSelectionRef.current) { quill.setSelection(savedSelectionRef.current.index, savedSelectionRef.current.length); } addComment({ editor: quill }); savedSelectionRef.current = null; }}, [quill]);// In your JSX:<button onMouseDown={(e) => { e.preventDefault(); const sel = quill?.getSelection(); if (sel?.length > 0) savedSelectionRef.current = sel; }} onClick={handleAddComment}> Add Comment</button>
Call this method to add a comment to selected text in the Quill editor. You can use this when the user clicks on the comment button or presses a keyboard shortcut.
By default, Velt comment marks (<velt-comment-text>) are persisted by the Velt SDK. When the editor loads and the Velt SDK initializes, the marks will be automatically added to the editor.
If you plan to store the contents of the Quill editor on your end with the comment marks already included, you can disable this feature.