4.0.0-beta.9
Jan 13 2025

Features

  • [Core] Added support for React v19 in sdk-react library.

Improvements

  • [Authentication]: Made organizationId mandatory in identify method.
  • [New Accounts]: New accounts or API keys will have advanced queries turned on by default.

Bug Fixes

  • [Notifications] Fixed an issue where notifications were not working when organizationId was not set.
  • [REST API] Fixed an issue where the REST API for adding or updating organizations and documents did not allow custom fields in metadata.
4.0.0-beta.8
Jan 10 2025

Improvements

  • [Comments]: Improved comments performance with optimistic local-first reads and writes.
  • [Notifications]: Added documentMetadata object in the properties that are sent to SendGrid for emails.

Bug Fixes

  • [Comments] Fixed an issue where custom metadata added to a comment using addContext was not sent to the first notification event (newlyAdded).
4.0.0-beta.7
Jan 10 2025

Features

  • [Comments] Added a transcriptionDone event callback when recording transcription is done.

Using Hooks:

const onTranscriptionDone = useRecorderEventCallback('transcriptionDone');

useEffect(() => {
    console.log(onTranscriptionDone);
}, [onTranscriptionDone])

Using API:

const recorderElement = client.getRecorderElement();

recorderElement.on('transcriptionDone').subscribe((data) => {
	console.log('transcriptionDone', data);
});

TranscriptionDoneEvent {
    transcription: string;
    id?: string;
    tag?: string;
    type?: string;
    thumbnailUrl?: string;
    thumbnailWithPlayIconUrl?: string;
    videoUrl?: string;
    audioUrl?: string;
    videoPlayerUrl?: string;
    getThumbnailTag?: (url?: string) => string;
}

Improvements

  • [Comments] Disabled @here in the contacts dropdown by default. You can turn it on using this.

Bug Fixes

  • [Comments] Removed virtual scroll from autocomplete panel and removed fixed height. This was causing weird UI issues. We are rewriting the autocomplete panel with virtual scroll.
  • [Comments] Fixed an issue where horizontal scroll was visible on sidebar in some scenarios.
  • [Comments] Fixed an issue where the shadowDom prop was not passed down to page mode composer in comment sidebar.
  • [Comments] Fixed an issue where sortData prop was not working in comments sidebar.
4.0.0-beta.6
Jan 6 2025

Bug Fixes

  • [Comments] Fixed an issue with getCommentAnnotationsCount API when filtering by specific document IDs in the query.
4.0.0-beta.5
Dec 24 2024

Improvements

  • [Security] Merged security patch in the React package

Bug Fixes

  • [Recording] Fixed an issue where the floating recording player was visible for threaded recorder notes
  • [Comments] Fixed an issue where the sidebar button border color was using light mode colors in dark mode
4.0.0-beta.4
Dec 19 2024

New APIs

1. setDocuments

  • Set multiple documents at the same time. You can specify 30 documents at a time.
  • The first document in the list will be considered as the root document.
  • For features like comments, notifications, recorder, reactions etc. you will be able to read and write to multiple documents at the same time.
  • For features like cursors, presence, huddle, live state sync etc. it will default to the root document.
  • Sidebar will automatically show data from all the documents.

Using Hooks:

const { setDocuments } = useSetDocuments();
setDocuments(documents: Document[], options?: SetDocumentsRequestOptions);

Using API:

client.setDocuments(documents: Document[], options?: SetDocumentsRequestOptions);
Document: {
  id: string,
  metadata: DocumentMetadata
}

SetDocumentsRequestOptions: {
  organizationId: string
}

2. getCommentAnnotations

  • Get all the comment annotations for all the specified documents.
  • You can specify 30 documents at a time.
  • If you don’t specify any query, it will return data from the documents specified in the setDocuments method.

Using Hooks:

const { data } = useGetCommentAnnotations(query);
// initial data value will be null while the request is in progress

Using API:

const commentElement = client.getCommentElement();
commentElement.getCommentAnnotations(query).subscribe((response) => {
  console.log(response.data);
  // initial data value will be null while the request is in progress
});
CommentRequestQuery {
  documentIds!: string[],
  locationIds!: string[],
  statusIds!: string[]
};

GetCommentAnnotationsResponse {
  data: Record<string, CommentAnnotation[]> | null; // Key: documentId, Value: CommentAnnotation[]
};

3. getCommentAnnotationsCount

  • Get the total and unread comment annotations count of all the comment annotations for all the specified documents.
  • You can specify 30 documents at a time.
  • If you don’t specify any query, it will return data from the documents specified in the setDocuments method.

Using Hooks:

const { data } = useCommentAnnotationsCount(query);
// initial data value will be null while the request is in progress

Using API:

const commentElement = client.getCommentElement();
commentElement.getCommentAnnotationsCount(query).subscribe((response) => {
  console.log(response.data);
  // initial data value will be null while the request is in progress
});
CommentRequestQuery {
  documentIds!: string[],
  locationIds!: string[],
  statusIds!: string[]
};

GetCommentAnnotationsCountResponse {
  data: Record<string, CommentAnnotationsCount> | null; // Key: documentId, Value: CommentAnnotationsCount
};

CommentAnnotationsCount {
  unread: number,
  total: number
}

4. Display comments from multiple documents on the same page

  • If you want to display comments from multiple documents on the same page, you can add data-velt-document-id attribute to the container that contains the document.
  • It will be used to identify which part of the DOM belongs to which document.

Other updates

New Features

  • [Comments]: Added support for Status Filter in Comments Sidebar’s main filter menu:
    • By default, the status filter is disabled in the main filter menu.
    • Currently, it doesn’t support grouping.
    • Added Wireframe support for this. Learn more.
    • If you were using wireframes before, you will add this to your wireframes.
const filterConfig = {
  status: {
    enable: true,
    name: "Status",
    multiSelection: true,
  }
};

<VeltCommentsSidebar filterConfig={filterConfig} />

Bug Fixes

  • [Comments]: Fixed an issue where empty state visibility was not visible when filter is applied and grouping was disabled.
  • [Comments]: Fixed an issue where users could click on the comment in the sidebar and navigate to comments when they shouldn’t.