Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 22 additions & 13 deletions src/lib/ChatInput.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,12 @@

// Variable to keep track of the user's first prompt
let firstUserPrompt = '';
let hasUpdatedChatTitle = false; // Flag to avoid multiple updates
// Flag to avoid multiple updates
let hasUpdatedChatTitle = false;

async function handleSubmit() {
if (input.trim() === '') return;

isLoadingAnswerStore.set(true);
inputCopy = input;

Expand Down Expand Up @@ -246,9 +249,7 @@
addCompletionToChat();
}
}
if ($settingsStore.useTitleSuggestions
&& !hasUpdatedChatTitle
&& firstUserPrompt) {
if ($settingsStore.useTitleSuggestions && !hasUpdatedChatTitle && firstUserPrompt) {
hasUpdatedChatTitle = true; // Ensure the title is only updated once
const title = await suggestChatTitle({
...chat,
Expand Down Expand Up @@ -279,7 +280,7 @@

const data = JSON.parse(event.data);

showToast(toastStore, data.message || 'An error occured.', 'error');
showToast(toastStore, data.message || 'An error occurred.', 'error');

if (data.message.includes('API key')) {
showModalComponent(modalStore, 'SettingsModal', { slug });
Expand Down Expand Up @@ -328,13 +329,21 @@
return;
}

if (event.key === 'Enter' && !event.shiftKey) {
if (input.trim() === '') {
// Create new line if input is whitespaced.
addNewLineAndResize();
} else {
handleSubmit();
}
switch (event.key) {
case 'ArrowUp':
case 'ArrowDown':
event.stopImmediatePropagation();
break;
case 'Enter':
if (!event.shiftKey) {
if (input.trim() === '') {
// Create a new line if input is whitespace.
addNewLineAndResize();
} else {
handleSubmit();
}
}
break;
}
}

Expand Down Expand Up @@ -442,4 +451,4 @@
</div>
</div>
{/if}
</footer>
</footer>
4 changes: 2 additions & 2 deletions src/misc/eventSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ import { SSE } from 'sse.js';

export class EventSource {
private eventSource?: SSE;
private handleAnswer?: (event: MessageEvent<any>) => void;
private handleAnswer?: (event: MessageEvent<any>) => Promise<void>;
private handleError?: (event: MessageEvent<any>) => void;
private handleAbort?: (event: MessageEvent<any>) => void;

start(
url: string,
payload: any,
handleAnswer: (event: MessageEvent<any>) => void,
handleAnswer: (event: MessageEvent<any>) => Promise<void>,
handleError: (event: MessageEvent<any>) => void,
handleAbort: (event: MessageEvent<any>) => void,
token?: string
Expand Down
7 changes: 1 addition & 6 deletions src/misc/openai.ts
Original file line number Diff line number Diff line change
Expand Up @@ -186,12 +186,7 @@ export function estimateChatCost(chat: Chat): ChatCost {
}

export function getProviderForModel(model: AiModel): AiProvider {
if (model.includes('llama')) {
return AiProvider.Meta;
} else if (model.includes('mistral')) {
return AiProvider.Mistral;
}
return AiProvider.OpenAi;
return model ? models[model].provider : AiProvider.OpenAi;
}

export function getDefaultModelForProvider(provider: AiProvider): AiModel {
Expand Down