refac
This commit is contained in:
@@ -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 = [''];
|
||||||
|
|||||||
Reference in New Issue
Block a user