updateConversationTitle method

Future<void> updateConversationTitle({
  1. String? title,
})

Implementation

Future<void> updateConversationTitle({String? title}) async {
  if (title != null) {
    conversation.value?.title = title;
    conversation.value?.hasTempTitle = false;
    conversation.refresh();
    update();
    PupauEventService.instance.emitPupauEvent(
      PupauEvent(
        type: UpdateConversationType.conversationTitleGenerated,
        payload: {
          "conversationTitle": title,
          "assistantId": assistantId,
          "assistantType": assistant.value?.type ?? AssistantType.assistant,
          "conversationId": conversation.value?.id ?? "",
        },
      ),
    );
    return;
  }
  isLoadingTitle.value = conversation.value?.hasTempTitle ?? true;
  update();
  await Future.delayed(const Duration(milliseconds: 1500));
  if (conversation.value != null &&
      conversation.value!.hasTempTitle &&
      assistant.value != null) {
    conversation.value = await ConversationService.getConversation(
      assistantId,
      conversation.value!.id,
      isMarketplace,
    );
    conversation.refresh();
    isLoadingTitle.value = false;
    update();
    await Future.delayed(const Duration(milliseconds: 1500));
    if (conversation.value != null &&
        conversation.value!.hasTempTitle &&
        assistant.value != null) {
      conversation.value = await ConversationService.getConversation(
        assistantId,
        conversation.value!.id,
        isMarketplace,
      );
      conversation.refresh();
      update();
    }
  }
}