feat: pinned models

This commit is contained in:
Timothy Jaeryang Baek
2025-06-09 01:24:11 +04:00
parent 3448362e00
commit a64667ca8d
6 changed files with 33 additions and 17 deletions

View File

@@ -25,6 +25,24 @@
toast.success($i18n.t('Default model updated'));
};
const pinModelHandler = async (modelId) => {
let pinnedModels = $settings?.pinnedModels ?? [];
if (pinnedModels.includes(modelId)) {
pinnedModels = pinnedModels.filter((id) => id !== modelId);
} else {
pinnedModels = [...new Set([...pinnedModels, modelId])];
}
if (pinnedModels.length > 5) {
toast.error($i18n.t('You can only pin up to 5 models.'));
return;
}
settings.set({ ...$settings, pinnedModels: pinnedModels });
await updateUserSettings(localStorage.token, { ui: $settings });
};
$: if (selectedModels.length > 0 && $models.length > 0) {
selectedModels = selectedModels.map((model) =>
$models.map((m) => m.id).includes(model) ? model : ''
@@ -49,6 +67,7 @@
? ($user?.permissions?.chat?.temporary ?? true) &&
!($user?.permissions?.chat?.temporary_enforced ?? false)
: true}
{pinModelHandler}
bind:value={selectedModel}
/>
</div>