
Setup
Step 1: Add Comment components
- Add the
Velt Commentscomponent to the root of your app. - This component is required to render comments in your app.
- Set the
text modeprop tofalseto hide the default text comment tool.
- React / Next.js
Step 2: Install the Velt SlateJS extension
Step 3: Import and add the extension to your SlateJS editor
- React / Next.js
Step 4: Register Velt Component Type in SlateJS
- Register the Velt Comments Element type with your SlateJS editor’s custom types.
- This ensures proper type checking for the comments functionality.
- React / Next.js
Step 5: Add a comment button to your SlateJS editor
- Add a button that appears in the context menu of your SlateJS editor when the user selects text.
- This button will be used to add a comment to the selected text.
- React / Next.js
Step 6: Call addComment to add a comment
- Call this method to add a comment to selected text in the SlateJS editor. You can use this when the user clicks on the comment button in context menu or presses a keyboard shortcut.
- Params:
AddCommentRequesteditorId: string, the id of the editor. Use this if you have multiple editors in your app.editor: instance of the SlateJS editor.context: optional object to set the Comment Annotation’s custom metadata.
- React / Next.js
Step 7: Render Comments in SlateJS Editor
- Get the comment data.
- Render the comments in the SlateJS editor.
- Params:
RenderCommentsRequesteditorId: string, the id of the editor. Use this if you have multiple editors in your app.editor: instance of the SlateJS editor.commentAnnotations: CommentAnnotation[]
- React / Next.js
Step 8: Style the commented text
- You can style the commented text by adding a CSS class to the
velt-comment-textelement. - By using the
comment-availableattribute, you can apply styles only when the comment data has loaded.
Complete Example
APIs
withVeltComments()
Augment a Slate editor with Velt Comments support (adds schema/commands/normalizers).- Params:
editor: Editoroptions?: VeltCommentsEditorOptions
- Returns:
VeltCommentsEditor
- React / Next.js
addComment()
Creates a comment annotation for the currently selected text in the editor.- Signature:
async (request:AddCommentRequest) => Promise<void> - Params:
request:AddCommentRequest - Returns:
Promise<void>
- React / Next.js
renderComments()
Renders and highlights comment annotations in the editor.- Signature:
(request:RenderCommentsRequest) => void - Params:
request:RenderCommentsRequest - Returns:
void
- React / Next.js
SlateVeltComment
React component that renders a Velt comment text element with annotation ID.- Params:
props: RenderElementPropselement:VeltCommentsElement
- Returns:
N/A

