diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 73c0a29e7..ec1a4ac89 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -60,14 +60,15 @@ import Navbar from '$lib/components/layout/Navbar.svelte'; import CallOverlay from './MessageInput/CallOverlay.svelte'; import { error } from '@sveltejs/kit'; + import ChatControls from './ChatControls.svelte'; const i18n: Writable = getContext('i18n'); export let chatIdProp = ''; let loaded = false; - const eventTarget = new EventTarget(); + let showControls = false; let stopResponseFlag = false; let autoScroll = true; let processing = ''; @@ -1424,6 +1425,7 @@ {title} bind:selectedModels bind:showModelSelector + bind:showControls shareEnabled={messages.length > 0} {chat} {initNewChat} @@ -1460,7 +1462,9 @@
- { - const model = $models.find((m) => m.id === e); - if (model?.info?.meta?.toolIds ?? false) { - return [...new Set([...a, ...model.info.meta.toolIds])]; - } - return a; - }, [])} - transparentBackground={$settings?.backgroundImageUrl ?? false} - {selectedModels} - {messages} - {submitPrompt} - {stopResponse} - /> + +
+ { + const model = $models.find((m) => m.id === e); + if (model?.info?.meta?.toolIds ?? false) { + return [...new Set([...a, ...model.info.meta.toolIds])]; + } + return a; + }, [])} + transparentBackground={$settings?.backgroundImageUrl ?? false} + {selectedModels} + {messages} + {submitPrompt} + {stopResponse} + /> +
+ + {/if} diff --git a/src/lib/components/chat/ChatControls.svelte b/src/lib/components/chat/ChatControls.svelte new file mode 100644 index 000000000..701693c71 --- /dev/null +++ b/src/lib/components/chat/ChatControls.svelte @@ -0,0 +1,61 @@ + + +{#if largeScreen} +
+
+
+ { + show = false; + }} + /> +
+
+
+{:else} + +
+ { + show = false; + }} + /> +
+
+{/if} diff --git a/src/lib/components/chat/Controls/Controls.svelte b/src/lib/components/chat/Controls/Controls.svelte new file mode 100644 index 000000000..f17498419 --- /dev/null +++ b/src/lib/components/chat/Controls/Controls.svelte @@ -0,0 +1,24 @@ + + +
+
+
Chat Controls
+ +
+ +
+
+ +
coming soon
+
diff --git a/src/lib/components/chat/ModelSelector.svelte b/src/lib/components/chat/ModelSelector.svelte index 252f6728a..c045d138e 100644 --- a/src/lib/components/chat/ModelSelector.svelte +++ b/src/lib/components/chat/ModelSelector.svelte @@ -34,7 +34,7 @@ } -
+
{#each selectedModels as selectedModel, selectedModelIdx}
diff --git a/src/lib/components/icons/AdjustmentsHorizontal.svelte b/src/lib/components/icons/AdjustmentsHorizontal.svelte new file mode 100644 index 000000000..4cc509e84 --- /dev/null +++ b/src/lib/components/icons/AdjustmentsHorizontal.svelte @@ -0,0 +1,17 @@ + + + + + diff --git a/src/lib/components/layout/Navbar.svelte b/src/lib/components/layout/Navbar.svelte index 5a7261678..9f339eb29 100644 --- a/src/lib/components/layout/Navbar.svelte +++ b/src/lib/components/layout/Navbar.svelte @@ -21,6 +21,7 @@ import { page } from '$app/stores'; import UserMenu from './Sidebar/UserMenu.svelte'; import MenuLines from '../icons/MenuLines.svelte'; + import AdjustmentsHorizontal from '../icons/AdjustmentsHorizontal.svelte'; const i18n = getContext('i18n'); @@ -32,6 +33,7 @@ export let selectedModels; export let showModelSelector = true; + export let showControls = false; let showShareChatModal = false; let showDownloadChatModal = false; @@ -58,6 +60,7 @@
+
{#if showModelSelector} @@ -101,12 +104,27 @@ {/if} + + + + +
-
+
{$i18n.t('New Chat')}
@@ -339,7 +339,7 @@
-
{$i18n.t('Workspace')}
+
{$i18n.t('Workspace')}
@@ -533,7 +533,7 @@
-
+
{#if $user !== undefined}
-
{$user.name}
+
{$user.name}
{/if}
- -