Skip to main content

Setup

Step 1: Add Comment components

  • Add the Velt Comments component to the root of your app.
  • This component is required to render comments in your app.
  • Set the text mode prop to false to hide the default text comment tool.

Step 2: Install the Velt SlateJS extension

Step 3: Configure the SlateJS editor with the Velt Comments extension

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.

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.

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: AddCommentRequest
    • editorId: 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.

Step 7: Render comments in SlateJS editor

  • Get the comment data.
  • Render the comments in the SlateJS editor.
  • Params: RenderCommentsRequest
    • editorId: string, the id of the editor. Use this if you have multiple editors in your app.
    • editor: instance of the SlateJS editor.
    • commentAnnotations: CommentAnnotation[]

Step 8: Style the commented text

  • You can style the commented text by adding a CSS class to the velt-comment-text element.
  • By using the comment-available attribute, 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: Editor
    • options?: VeltCommentsEditorOptions
  • Returns: VeltCommentsEditor

addComment()

Creates a comment annotation for the currently selected text in the editor.

renderComments()

Renders and highlights comment annotations in the editor.

SlateVeltComment

React component that renders a Velt comment text element with annotation ID.