feat: add timestamp and forking
This commit is contained in:
@@ -8,7 +8,7 @@ const rootStart = Date.now();
|
||||
const chatPaneWrapper = ref<HTMLElement | null>(null);
|
||||
const inputValue = ref<BaseMessage>({ content: '', fileIds: [] });
|
||||
const route = useRoute();
|
||||
const { getAgent, deleteTopic } = await useAgents();
|
||||
const { getAgent, deleteTopic, forkTopic } = await useAgents();
|
||||
const { open: sidebarOpen, openSidebar } = useSidebar();
|
||||
const { providers, allModels } = await useModels();
|
||||
const { addShortcut } = useKeyboardShortcuts();
|
||||
@@ -114,6 +114,19 @@ const flatMessages = computed(() => {
|
||||
return messages;
|
||||
});
|
||||
|
||||
const handleFork = async (message: Message) => {
|
||||
const messageId = message.activeChildId && message.children.length > 0
|
||||
? message.activeChildId
|
||||
: message.id;
|
||||
|
||||
const newTopicId = await forkTopic(topicId.value, messageId);
|
||||
if (newTopicId) {
|
||||
await navigateTo(`/agent/${route.params.id}/topic/${newTopicId}`);
|
||||
} else {
|
||||
console.error('Failed to fork topic');
|
||||
}
|
||||
};
|
||||
|
||||
const handleDelete = async (rootMessage: Message) => {
|
||||
let messageId: string;
|
||||
if (rootMessage.activeChildId && rootMessage.children.length > 0) {
|
||||
@@ -306,7 +319,8 @@ console.log("full page render took", Date.now() - rootStart);
|
||||
<Message v-for="message in topic.messages" :key="message.id" :message="message"
|
||||
@edit="(value) => patchMessageLocally(message.id, { content: value })"
|
||||
@patch="(updates) => patchMessageLocally(message.id, updates)"
|
||||
@delete="handleDelete(message)" @regenerate="handleRegenerate(message)" />
|
||||
@delete="handleDelete(message)" @regenerate="handleRegenerate(message)"
|
||||
@fork="handleFork(message)" />
|
||||
</template>
|
||||
</Suspense>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user