add model settings button in chat header and associated functionality

This commit is contained in:
2026-09-08 23:31:48 +02:00
parent 0546bcaf33
commit 7450f5c97f
4 changed files with 21 additions and 3 deletions
+16 -2
View File
@@ -1,5 +1,5 @@
import {del, get, post, put, stream} from "./app/api.js";
import {closeChatDrawer} from "./app/chatDrawer.js";
import {closeChatDrawer, openChatDrawer} from "./app/chatDrawer.js";
import {defaultModelProfile, onboardingPrompts, requestedChatId} from "./app/constants.js";
import {applyTheme as applySharedTheme, applyThemeMode as applySharedThemeMode, readStoredAppearance} from "./app/themeController.js";
import {
@@ -35,6 +35,7 @@ import {
manageChatMemoryBtn,
managePersonaStateBtn,
importWorkspaceFileInput,
headerModelButton,
headerModelName,
headerPersonaName,
moveChatFolderBtn,
@@ -182,7 +183,7 @@ function applyWorkspaceMode(nextMode, persist = true) {
workspaceMode = nextMode === "advanced" ? "advanced" : "basic";
document.body.dataset.workspaceMode = workspaceMode;
if (persist) localStorage.setItem("krishd-workspace-mode", workspaceMode);
if (modelSection) modelSection.classList.toggle("hidden", workspaceMode === "basic");
if (modelSection) modelSection.classList.remove("hidden");
if (personaSection) personaSection.classList.toggle("hidden", workspaceMode === "basic");
updateComposerPlaceholder();
}
@@ -1013,6 +1014,15 @@ function updateChatActionState() {
exportChatBtn.disabled = !hasChat || currentMessages.length === 0;
if (backupWorkspaceBtn) backupWorkspaceBtn.disabled = !currentUsername;
if (importWorkspaceBtn) importWorkspaceBtn.disabled = !currentUsername;
if (headerModelButton) headerModelButton.disabled = !hasChat;
}
function openModelSettings() {
if (!activeChatId || !modelSection) return;
modelSection.classList.remove("hidden");
modelSection.open = true;
openChatDrawer();
requestAnimationFrame(() => modelSelect?.focus());
}
function renderPersonaSection() {
@@ -1994,6 +2004,10 @@ modelSelect.addEventListener("change", () => {
renderModelSection();
void saveSelectedModel();
});
if (headerModelButton) headerModelButton.addEventListener("click", (event) => {
event.stopPropagation();
openModelSettings();
});
saveGenerationSettingsBtn.addEventListener("click", () => { void saveGenerationSettings(); });
roleplayNewPersonaBtn.addEventListener("click", () => openPersonaForm(null, "assistant"));
clearUserPersonaBtn.addEventListener("click", () => {