|
|
|
@ -179,6 +179,19 @@ async function handleSend(content: string) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
async function handleNewSession() { |
|
|
|
const sid = sessions.currentSessionId.value; |
|
|
|
if (sid) { |
|
|
|
const inst = chat.getInstance(sid); |
|
|
|
if (inst.messages.value.length === 0 && !inst.isLoading.value) { |
|
|
|
if (isMobile) mobileSidebarOpen.value = false; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
await sessions.newSession(); |
|
|
|
if (isMobile) mobileSidebarOpen.value = false; |
|
|
|
} |
|
|
|
|
|
|
|
function refreshTitleWithRetry(sid: string) { |
|
|
|
const delays = [3000, 6000, 10000, 15000, 22000]; |
|
|
|
delays.forEach((delay) => { |
|
|
|
@ -232,7 +245,7 @@ onMounted(async () => { |
|
|
|
:user="auth.user.value" |
|
|
|
:collapsed="isMobile ? !mobileSidebarOpen : sidebarCollapsed" |
|
|
|
:mobile="isMobile" |
|
|
|
@new-session="sessions.newSession(); if (isMobile) mobileSidebarOpen = false" |
|
|
|
@new-session="handleNewSession" |
|
|
|
@select="sessions.selectSession($event); if (isMobile) mobileSidebarOpen = false" |
|
|
|
@rename="sessions.renameSession" |
|
|
|
@delete="handleDeleteSession" |
|
|
|
|