feat: pinned models
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user