2 import { ModelBadge, ModelsSelectorDropdown } from '$lib/components/app';
3 import { copyToClipboard } from '$lib/utils';
4 import { modelsStore } from '$lib/stores/models.svelte';
5 import { ServerModelStatus } from '$lib/enums';
8 displayedModel: string | null;
11 onRegenerate: (modelOverride?: string) => void;
14 let { displayedModel, isRouter, isLoading, onRegenerate }: Props = $props();
16 let pendingModel = $state<string | null>(null);
18 function handleCopyModel() {
19 void copyToClipboard(displayedModel ?? '');
24 <ModelsSelectorDropdown
25 currentModel={pendingModel ?? displayedModel}
27 onModelChange={async (modelId: string, modelName: string) => {
28 const status = modelsStore.getModelStatus(modelId);
30 if (status !== ServerModelStatus.LOADED) {
31 pendingModel = modelId;
34 await modelsStore.loadModel(modelId);
40 onRegenerate(modelName);
45 <ModelBadge model={displayedModel || undefined} onclick={handleCopyModel} />