updateConversationTitle method
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();
}
}
}