This commit is contained in:
Timothy Jaeryang Baek
2026-01-06 19:11:56 +04:00
parent 87ebbbe2f4
commit 17490381f5
+21 -5
View File
@@ -913,6 +913,8 @@
.filter((m) => !(m?.info?.meta?.hidden ?? false)) .filter((m) => !(m?.info?.meta?.hidden ?? false))
.map((m) => m.id); .map((m) => m.id);
const defaultModels = $config?.default_models ? $config?.default_models.split(',') : [];
if ($page.url.searchParams.get('models') || $page.url.searchParams.get('model')) { if ($page.url.searchParams.get('models') || $page.url.searchParams.get('model')) {
const urlModels = ( const urlModels = (
$page.url.searchParams.get('models') || $page.url.searchParams.get('models') ||
@@ -921,8 +923,8 @@
)?.split(','); )?.split(',');
if (urlModels.length === 1) { if (urlModels.length === 1) {
const m = $models.find((m) => m.id === urlModels[0]); if (!$models.find((m) => m.id === urlModels[0])) {
if (!m) { // Model not found; open model selector and prefill
const modelSelectorButton = document.getElementById('model-selector-0-button'); const modelSelectorButton = document.getElementById('model-selector-0-button');
if (modelSelectorButton) { if (modelSelectorButton) {
modelSelectorButton.click(); modelSelectorButton.click();
@@ -936,37 +938,51 @@
} }
} }
} else { } else {
// Model found; set it as selected
selectedModels = urlModels; selectedModels = urlModels;
} }
} else { } else {
// Multiple models; set as selected
selectedModels = urlModels; selectedModels = urlModels;
} }
// Unavailable models filtering
selectedModels = selectedModels.filter((modelId) => selectedModels = selectedModels.filter((modelId) =>
$models.map((m) => m.id).includes(modelId) $models.map((m) => m.id).includes(modelId)
); );
} else { } else {
if ($selectedFolder?.data?.model_ids) { if ($selectedFolder?.data?.model_ids) {
// Set from folder model IDs
selectedModels = $selectedFolder?.data?.model_ids; selectedModels = $selectedFolder?.data?.model_ids;
} else { } else {
if (sessionStorage.selectedModels) { if (sessionStorage.selectedModels) {
// Set from session storage (temporary selection)
selectedModels = JSON.parse(sessionStorage.selectedModels); selectedModels = JSON.parse(sessionStorage.selectedModels);
sessionStorage.removeItem('selectedModels'); sessionStorage.removeItem('selectedModels');
} else { } else {
if ($settings?.models) { if ($settings?.models) {
// Set from user settings
selectedModels = $settings?.models; selectedModels = $settings?.models;
} else if ($config?.default_models) { } else if (defaultModels && defaultModels.length > 0) {
console.log($config?.default_models.split(',') ?? ''); // Set from default models
selectedModels = $config?.default_models.split(','); selectedModels = defaultModels;
} }
} }
} }
// Unavailable & hidden models filtering
selectedModels = selectedModels.filter((modelId) => availableModels.includes(modelId)); selectedModels = selectedModels.filter((modelId) => availableModels.includes(modelId));
} }
// Ensure at least one model is selected
if (selectedModels.length === 0 || (selectedModels.length === 1 && selectedModels[0] === '')) { if (selectedModels.length === 0 || (selectedModels.length === 1 && selectedModels[0] === '')) {
if (availableModels.length > 0) { if (availableModels.length > 0) {
if (defaultModels && defaultModels.length > 0) {
// Set from default models
selectedModels = defaultModels.filter((modelId) => availableModels.includes(modelId));
}
// Set to first available model
selectedModels = [availableModels?.at(0) ?? '']; selectedModels = [availableModels?.at(0) ?? ''];
} else { } else {
selectedModels = ['']; selectedModels = [''];