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, {