diff --git a/src/lib/ChatOptionMenu.svelte b/src/lib/ChatOptionMenu.svelte
index 514d76f..42d6724 100644
--- a/src/lib/ChatOptionMenu.svelte
+++ b/src/lib/ChatOptionMenu.svelte
@@ -24,7 +24,7 @@
import { clickOutside } from 'svelte-use-click-outside'
import { openModal } from 'svelte-modals'
import PromptConfirm from './PromptConfirm.svelte'
- import { startNewChatWithWarning } from './Util.svelte'
+ import { startNewChatWithWarning, startNewChatFromChatId } from './Util.svelte'
export let chatId
export const show = (showHide:boolean = true) => {
@@ -123,7 +123,10 @@
{ $apiKeyStorage && close(); $apiKeyStorage && startNewChatWithWarning(chatId) }} class="dropdown-item">
- New Chat
+ New Chat from Default
+
+ { chatId && close(); chatId && startNewChatFromChatId(chatId) }} class="dropdown-item">
+ New Chat from Current
{ if (chatId) close(); copyChat(chatId) }}>
Clone Chat
diff --git a/src/lib/Util.svelte b/src/lib/Util.svelte
index 39831b8..5c4b9c9 100644
--- a/src/lib/Util.svelte
+++ b/src/lib/Util.svelte
@@ -2,7 +2,7 @@
import { compare } from 'stacking-order'
import { openModal } from 'svelte-modals'
import PromptNotice from './PromptNotice.svelte'
- import { getChat } from './Storage.svelte'
+ import { addChat, getChat } from './Storage.svelte'
import { replace } from 'svelte-spa-router'
import PromptConfirm from './PromptConfirm.svelte'
export const sizeTextElements = () => {
@@ -115,6 +115,12 @@
})
}
+ export const startNewChatFromChatId = (chatId: number) => {
+ const newChatId = addChat(getChat(chatId).settings)
+ // go to new chat
+ replace(`/chat/${newChatId}`)
+ }
+
export const startNewChatWithWarning = (activeChatId: number|undefined) => {
if (activeChatId && getChat(activeChatId).settings.isDirty) {
openModal(PromptConfirm, {