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
18 changes: 14 additions & 4 deletions chat-core.js
Original file line number Diff line number Diff line change
Expand Up @@ -488,10 +488,20 @@ document.addEventListener("DOMContentLoaded", () => {
prompt += `\nUser: ${lastUser}`;
}

const modelSelectEl = document.getElementById("model-select");
const model = modelSelectEl?.value || currentSession.model;
if (!model) throw new Error("No model selected");
const apiUrl = `https://text.pollinations.ai/${encodeURIComponent(prompt)}?model=${encodeURIComponent(model)}`;
const modelSelectEl = document.getElementById("model-select");
const model = modelSelectEl?.value || currentSession.model || Storage.getDefaultModel();
if (!model) {
loadingDiv.textContent = "Error: No model selected.";
setTimeout(() => loadingDiv.remove(), 3000);
const btn = window._chatInternals?.sendButton || document.getElementById("send-button");
const input = window._chatInternals?.chatInput || document.getElementById("chat-input");
if (btn) btn.disabled = false;
if (input) input.disabled = false;
showToast("Please select a model before sending a message.");
if (callback) callback();
return;
}
const apiUrl = `https://text.pollinations.ai/${encodeURIComponent(prompt)}?model=${encodeURIComponent(model)}`;

try {
const res = await window.pollinationsFetch(apiUrl, {
Expand Down
7 changes: 6 additions & 1 deletion storage.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,12 @@ document.addEventListener("DOMContentLoaded", () => {
}

function getDefaultModel() {
return localStorage.getItem("defaultModelPreference") || "";
let model = localStorage.getItem("defaultModelPreference");
if (!model) {
model = "unity";
localStorage.setItem("defaultModelPreference", model);
}
return model;
}

function setDefaultModel(modelName) {
Expand Down
35 changes: 19 additions & 16 deletions ui.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,41 +148,44 @@ document.addEventListener("DOMContentLoaded", () => {
});

const currentSession = Storage.getCurrentSession();
if (currentSession && currentSession.model) {
const modelExists = Array.from(modelSelect.options).some(option => option.value === currentSession.model);
if (modelExists) {
modelSelect.value = currentSession.model;
const preferredModel = currentSession?.model || Storage.getDefaultModel();
if (preferredModel) {
const exists = Array.from(modelSelect.options).some(option => option.value === preferredModel);
if (exists) {
modelSelect.value = preferredModel;
} else {
const tempOpt = document.createElement("option");
tempOpt.value = currentSession.model;
tempOpt.textContent = `${currentSession.model} (Previously Selected - May Be Unavailable)`;
tempOpt.value = preferredModel;
tempOpt.textContent = `${preferredModel} (Previously Selected - May Be Unavailable)`;
tempOpt.title = "This model may no longer be available";
modelSelect.appendChild(tempOpt);
modelSelect.value = currentSession.model;
console.warn(`Model ${currentSession.model} not found in fetched list. Added as unavailable option.`);
modelSelect.value = preferredModel;
console.warn(`Model ${preferredModel} not found in fetched list. Added as unavailable option.`);
}
}

if (!modelSelect.value && modelSelect.options.length > 0) {
const firstModel = modelSelect.options[0].value;
const unityOption = Array.from(modelSelect.options).find(opt => opt.value === "unity");
const firstModel = unityOption ? unityOption.value : modelSelect.options[0].value;
modelSelect.value = firstModel;
if (currentSession) {
Storage.setSessionModel(currentSession.id, firstModel);
}
}
} catch (err) {
} catch (err) {
console.error("Failed to fetch text models:", err);
modelSelect.innerHTML = "";
const currentSession = Storage.getCurrentSession();
if (currentSession && currentSession.model) {
const fallbackModel = currentSession?.model || Storage.getDefaultModel();
if (fallbackModel) {
const sessOpt = document.createElement("option");
sessOpt.value = currentSession.model;
sessOpt.textContent = `${currentSession.model} (From Session - May Be Unavailable)`;
sessOpt.value = fallbackModel;
sessOpt.textContent = `${fallbackModel} (From Session - May Be Unavailable)`;
modelSelect.appendChild(sessOpt);
modelSelect.value = currentSession.model;
modelSelect.value = fallbackModel;
}
}
}
}
}
fetchPollinationsModels();
newSessionBtn.addEventListener("click", () => {
const newSess = Storage.createSession("New Chat");
Expand Down