diff --git a/packages/chat-headless/docs/chat-headless.chatheadless.md b/packages/chat-headless/docs/chat-headless.chatheadless.md index 5d9032f..94db4c2 100644 --- a/packages/chat-headless/docs/chat-headless.chatheadless.md +++ b/packages/chat-headless/docs/chat-headless.chatheadless.md @@ -21,7 +21,7 @@ export interface ChatHeadless | [getNextMessage(text, source)](./chat-headless.chatheadless.getnextmessage.md) | Performs a Chat API request for the next message generated by chat bot using the conversation state (e.g. message history and notes). Update the state with the response data. | | [initLocalStorage()](./chat-headless.chatheadless.initlocalstorage.md) | Loads the [ConversationState](./chat-headless.conversationstate.md) from local storage, if present, and adds a listener to keep the conversation state in sync with the stored state | | [report(eventPayload)](./chat-headless.chatheadless.report.md) | Send Chat related analytics event to Yext Analytics API. | -| [restartConversation()](./chat-headless.chatheadless.restartconversation.md) | Resets all fields within [ConversationState](./chat-headless.conversationstate.md) and the agent session, if one exists. | +| [restartConversation()](./chat-headless.chatheadless.restartconversation.md) |

Resets all fields within the [ConversationState](./chat-headless.conversationstate.md), and sets the active client to the bot client, if one was provided when constructing the [ChatHeadless](./chat-headless.chatheadless.md) instance.

If a [ChatEventClient](./chat-headless.chateventclient.md) is currently active before reset, that client's resetSession method is called.

| | [setCanSendMessage(canSendMessage)](./chat-headless.chatheadless.setcansendmessage.md) | Sets [ConversationState.canSendMessage](./chat-headless.conversationstate.cansendmessage.md) to the specified state | | [setChatLoadingStatus(isLoading)](./chat-headless.chatheadless.setchatloadingstatus.md) | Sets [ConversationState.isLoading](./chat-headless.conversationstate.isloading.md) to the specified loading state | | [setContext(context)](./chat-headless.chatheadless.setcontext.md) | Sets [MetaState.context](./chat-headless.metastate.context.md) to the specified context. | diff --git a/packages/chat-headless/docs/chat-headless.chatheadless.restartconversation.md b/packages/chat-headless/docs/chat-headless.chatheadless.restartconversation.md index c3c61c6..42edde7 100644 --- a/packages/chat-headless/docs/chat-headless.chatheadless.restartconversation.md +++ b/packages/chat-headless/docs/chat-headless.chatheadless.restartconversation.md @@ -4,7 +4,9 @@ ## ChatHeadless.restartConversation() method -Resets all fields within [ConversationState](./chat-headless.conversationstate.md) and the agent session, if one exists. +Resets all fields within the [ConversationState](./chat-headless.conversationstate.md), and sets the active client to the `bot` client, if one was provided when constructing the [ChatHeadless](./chat-headless.chatheadless.md) instance. + +If a [ChatEventClient](./chat-headless.chateventclient.md) is currently active before reset, that client's `resetSession` method is called. **Signature:** diff --git a/packages/chat-headless/src/ChatHeadlessImpl.ts b/packages/chat-headless/src/ChatHeadlessImpl.ts index 8d90762..e5aaa5a 100644 --- a/packages/chat-headless/src/ChatHeadlessImpl.ts +++ b/packages/chat-headless/src/ChatHeadlessImpl.ts @@ -268,8 +268,8 @@ export class ChatHeadlessImpl implements ChatHeadless { restartConversation() { if (isChatEventClient(this.chatClient)) { this.chatClient.resetSession(); - this.chatClient = this.botClient; } + this.chatClient = this.botClient; this.setConversationId(undefined); this.setChatLoadingStatus(false); diff --git a/packages/chat-headless/src/models/ChatHeadless.ts b/packages/chat-headless/src/models/ChatHeadless.ts index c04384e..7d1ce6f 100644 --- a/packages/chat-headless/src/models/ChatHeadless.ts +++ b/packages/chat-headless/src/models/ChatHeadless.ts @@ -110,7 +110,12 @@ export interface ChatHeadless { */ initLocalStorage(): void; /** - * Resets all fields within {@link ConversationState} and the agent session, if one exists. + * Resets all fields within the {@link ConversationState}, and sets the active + * client to the `bot` client, if one was provided when constructing the + * {@link ChatHeadless} instance. + * + * If a {@link ChatEventClient} is currently active before reset, that client's + * `resetSession` method is called. * * @public */