diff --git a/src/lib/Chat.svelte b/src/lib/Chat.svelte index fc7443a..0a60c29 100644 --- a/src/lib/Chat.svelte +++ b/src/lib/Chat.svelte @@ -10,7 +10,8 @@ updateChatSettings, updateRunningTotal, checkStateChange, - showSetChatSettings + showSetChatSettings, + submitExitingPromptsNow } from './Storage.svelte' import { getRequestSettingList, defaultModel } from './Settings.svelte' import { @@ -75,10 +76,14 @@ $showSetChatSettings = false showSettingsModal() } + if ($submitExitingPromptsNow) { + $submitExitingPromptsNow = false + submitForm(false, true) + } }) } - $: onStateChange($checkStateChange, $showSetChatSettings) + $: onStateChange($checkStateChange, $showSetChatSettings, $submitExitingPromptsNow) // Make sure chat object is ready to go updateChatSettings(chatId) diff --git a/src/lib/ChatSettingsModal.svelte b/src/lib/ChatSettingsModal.svelte index 0bd4c7e..17860fe 100644 --- a/src/lib/ChatSettingsModal.svelte +++ b/src/lib/ChatSettingsModal.svelte @@ -54,11 +54,6 @@ showProfileMenu = false $checkStateChange++ showSettingsModal = 0 - // if (chat.startSession) { - // chat.startSession = false - // saveChatStore() - // // submitForm(false, true) - // } } const clearSettings = () => { diff --git a/src/lib/EditMessage.svelte b/src/lib/EditMessage.svelte index 99826a6..b8e9d23 100644 --- a/src/lib/EditMessage.svelte +++ b/src/lib/EditMessage.svelte @@ -1,12 +1,12 @@ {#key message.uuid} @@ -136,39 +171,61 @@ class:editing={editing} >
-
+ @@ -216,17 +273,25 @@ min-width: 100px; min-height: 30px; } + .button-pack .button { + display: block; + margin: 4px; + border-radius: 10px; + opacity: .8; + } + .button-pack .button:hover { + opacity: 1; + } .button-pack { display: none; position: absolute; - right: 10px; - top: 2px; + right: -20px; + top: -20px; text-decoration: none; } .assistant-message .button-pack { right: auto; - left: 5px; - top: 2px; + left: -20px; } .message { position: relative; diff --git a/src/lib/Sidebar.svelte b/src/lib/Sidebar.svelte index 80b332b..e83604a 100644 --- a/src/lib/Sidebar.svelte +++ b/src/lib/Sidebar.svelte @@ -9,17 +9,6 @@ $: activeChatId = $params && $params.chatId ? parseInt($params.chatId) : undefined - // let fileinput - - // const onFileSelected = (e) => { - // const image = e.target.files[0] - // const reader = new FileReader() - // reader.readAsText(image) - // reader.onload = e => { - // const json = (e.target || {}).result as string - // addChatFromJSON(json) - // } - // } diff --git a/src/lib/Storage.svelte b/src/lib/Storage.svelte index 6845f8f..543a21b 100644 --- a/src/lib/Storage.svelte +++ b/src/lib/Storage.svelte @@ -11,6 +11,7 @@ export const apiKeyStorage = persisted('apiKey', '' as string) export let checkStateChange = writable(0) // Trigger for Chat export let showSetChatSettings = writable(false) // + export let submitExitingPromptsNow = writable(false) // for them to go now. Will not submit anything in the input const chatDefaults = getChatDefaults() @@ -219,6 +220,20 @@ chatsStorage.set(chats) } + export const truncateFromMessage = (chatId: number, uuid: string) => { + const chats = get(chatsStorage) + const chat = chats.find((chat) => chat.id === chatId) as Chat + const index = chat.messages.findIndex((m) => m.uuid === uuid) + const message = getMessage(chat, uuid) + if (message && message.summarized) throw new Error('Unable to truncate from a summarized message') + // const found = chat.messages.filter((m) => m.uuid === uuid) + if (index < 0) { + throw new Error(`Unable to find message with ID: ${uuid}`) + } + chat.messages.splice(index + 1) // remove every item after + chatsStorage.set(chats) + } + export const clearMessages = (chatId: number) => { const chats = get(chatsStorage) const chat = chats.find((chat) => chat.id === chatId) as Chat