/
diff --git a/src/lib/components/chat/Messages.svelte b/src/lib/components/chat/Messages.svelte
index 3b2e3f62..b02ba116 100644
--- a/src/lib/components/chat/Messages.svelte
+++ b/src/lib/components/chat/Messages.svelte
@@ -29,10 +29,15 @@
$: if (autoScroll && bottomPadding) {
(async () => {
await tick();
- window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' });
+ scrollToBottom();
})();
}
+ const scrollToBottom = () => {
+ const element = document.getElementById('messages-container');
+ element.scrollTop = element.scrollHeight;
+ };
+
const copyToClipboard = (text) => {
if (!navigator.clipboard) {
var textArea = document.createElement('textarea');
@@ -160,10 +165,11 @@
await tick();
- autoScroll = window.innerHeight + window.scrollY >= document.body.offsetHeight - 40;
+ const element = document.getElementById('messages-container');
+ autoScroll = element.scrollHeight - element.scrollTop <= element.clientHeight + 50;
setTimeout(() => {
- window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' });
+ scrollToBottom();
}, 100);
};
@@ -208,9 +214,11 @@
await tick();
- autoScroll = window.innerHeight + window.scrollY >= document.body.offsetHeight - 40;
+ const element = document.getElementById('messages-container');
+ autoScroll = element.scrollHeight - element.scrollTop <= element.clientHeight + 50;
+
setTimeout(() => {
- window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' });
+ scrollToBottom();
}, 100);
};
@@ -218,95 +226,97 @@
{#if messages.length == 0}
{:else}
- {#key chatId}
- {#each messages as message, messageIdx}
-
-
- {#if message.role === 'user'}
-
message.parentId === null)
- .map((message) => message.id) ?? []}
- {confirmEditMessage}
- {showPreviousMessage}
- {showNextMessage}
- {copyToClipboard}
- />
+
+ {#key chatId}
+ {#each messages as message, messageIdx}
+
+
+ {#if message.role === 'user'}
+
message.parentId === null)
+ .map((message) => message.id) ?? []}
+ {confirmEditMessage}
+ {showPreviousMessage}
+ {showNextMessage}
+ {copyToClipboard}
+ />
- {#if messages.length - 1 === messageIdx && processing !== ''}
-
-
-
+ @keyframes spinner_8HQG {
+ 0%,
+ 57.14% {
+ animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);
+ transform: translate(0);
+ }
+ 28.57% {
+ animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);
+ transform: translateY(-6px);
+ }
+ 100% {
+ transform: translate(0);
+ }
+ }
+
+
+
+ {processing}
+
-
- {processing}
-
-
+ {/if}
+ {:else}
+
{/if}
- {:else}
-
- {/if}
+
-
- {/each}
+ {/each}
- {#if bottomPadding}
-
- {/if}
- {/key}
+ {#if bottomPadding}
+
+ {/if}
+ {/key}
+
{/if}
diff --git a/src/lib/components/chat/Messages/Placeholder.svelte b/src/lib/components/chat/Messages/Placeholder.svelte
index e62fb41a..39abf6c5 100644
--- a/src/lib/components/chat/Messages/Placeholder.svelte
+++ b/src/lib/components/chat/Messages/Placeholder.svelte
@@ -16,7 +16,7 @@
{#if models.length > 0}
-
+
{#each models as model, modelIdx}
diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte
index 546e0621..b743d06f 100644
--- a/src/lib/components/chat/Messages/ResponseMessage.svelte
+++ b/src/lib/components/chat/Messages/ResponseMessage.svelte
@@ -270,9 +270,7 @@
{#if message.model in modelfiles}
{modelfiles[message.model]?.title}
{:else}
- Ollama
{message.model ? ` ${message.model}` : ''}
+ {message.model ? ` ${message.model}` : ''}
{/if}
{#if message.timestamp}
@@ -365,7 +363,7 @@
{#if message.done}