Skip to main content

AIConversationSummaryConfiguration

PropertyTypeDescription
conversationSummaryStyleAIConversationSummaryStyleUsed to provide custom styling to conversation summary view.
closeIconUrlstringCustom close button icon url.
loadingIconUrlstringCustom loading icon url.
loadingStateView() => anyCustom loading state view for the component.
emptyIconURLstringCustom empty icon url.
emptyStateView() => anyCustom empty state view for the component.
errorIconURLstringCustom error icon url.
errorStateView() => anyCustom error state view for the component.
unreadMessageThresholdnumberConversation summary will be generated only if a conversation has same or more number of unread messages than unreadMessageThreshold.
apiConfiguration(user?: CometChat.User, group?: CometChat.Group) => Promise<Object>The apiConfiguration callback allows you to override the default logic of fetching conversation starters. The apiConfiguration callback passes the user/group object of the conversation. You can use the SDK Method & pass additional configuration to customise the response.
customView(response: string, closeCallBack?: () => void) => Promise<any>The customView callback allows you to display a custom UI for conversation starters. The customView callback passes the conversation summary & a close call back which you can call when you want to hide/close your UI.

Usage

Custom icon URLs

import { AIConversationSummaryConfiguration } from "@cometchat/uikit-shared";

const configuration = new AIConversationSummaryConfiguration({
loadingIconURL: "URL",
errorIconURL: "URL",
emptyIconURL: "URL",
});

Custom state views

import { AIConversationSummaryConfiguration } from "@cometchat/uikit-shared";

const configuration = new AIConversationSummaryConfiguration({
errorStateView: () => <CustomErrorStateView />,
emptyStateView: () => <CustomEmptyStateView />,
loadingStateView: () => <CustomLoadingStateView />,
});

Custom style

import { AIConversationSummaryConfiguration, AIConversationSummaryStyle} from "@cometchat/uikit-shared";

const customConversationSummaryStyle: AIConversationSummaryStyle = new AIConversationSummaryStyle({
textFont: "20px Arial, sans-serif"
})

configuration = new AIConversationSummaryConfiguration({conversationSummaryStyle: customConversationSummaryStyle});

API Configuration Callback

import { CometChat } from "@cometchat/chat-sdk-javascript";
import { AIConversationSummaryConfiguration } from "@cometchat/uikit-shared";

const apiConfiguration = (user?:CometChat.User, group?:CometChat.Group)=> {
return new Promise((resolve, reject) => {
const receiverId = user ? user.getUid() : group.getGuid();
const receiverType = user ? 'user' : 'group';
CometChat.getConversationSummary(receiverId, receiverType).then(
(response: any)=>{
return resolve(response)
})
.catch((err: CometChat.CometChatException)=>{
return reject(err)
})
})
}

const configuration = new AIConversationSummaryConfiguration({apiConfiguration: apiConfiguration});

Custom View Callback

import { CometChat } from "@cometchat/chat-sdk-javascript";
import { AIConversationSummaryConfiguration } from "@cometchat/uikit-shared";

const customView = (response, closeCallBack) => {
return new Promise((resolve, reject) => {
/**
* Use the response & genrate a custom view for displaying the conversation starter.
*/
return resolve(<CustomConversationStarterView />);
})
}

configuration = new AIConversationSummaryConfiguration({customView: customView});