Skip to content

Commit e38044b

Browse files
committed
refactor(svelte5): migrated component to svelte5
Signed-off-by: Evzen Gasta <[email protected]>
1 parent 3999095 commit e38044b

File tree

2 files changed

+22
-19
lines changed

2 files changed

+22
-19
lines changed

packages/frontend/src/lib/select/ModelSelect.svelte

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,23 @@ import Select from './Select.svelte';
44
import Fa from 'svelte-fa';
55
import type { ModelInfo } from '@shared/models/IModelInfo';
66
7-
export let disabled: boolean = false;
8-
/**
9-
* Recommended model ids
10-
*/
11-
export let recommended: string[] | undefined = undefined;
7+
interface Props {
8+
disabled?: boolean;
9+
/**
10+
* Recommended model ids
11+
*/
12+
recommended?: string[];
13+
/**
14+
* List of models
15+
*/
16+
models: ModelInfo[];
17+
/**
18+
* Current value selected
19+
*/
20+
value: ModelInfo | undefined;
21+
}
1222
13-
/**
14-
* List of models
15-
*/
16-
export let models: ModelInfo[];
23+
let { disabled = false, recommended = undefined, models, value = undefined }: Props = $props();
1724
1825
function getModelSortingScore(modelInfo: ModelInfo): number {
1926
let score: number = 0;
@@ -22,21 +29,17 @@ function getModelSortingScore(modelInfo: ModelInfo): number {
2229
return score;
2330
}
2431
25-
/**
26-
* Current value selected
27-
*/
28-
export let value: ModelInfo | undefined = undefined;
29-
3032
/**
3133
* Handy mechanism to provide the mandatory property `label` and `value` to the Select component
3234
*/
33-
let selected: (ModelInfo & { label: string; value: string }) | undefined = undefined;
34-
$: {
35+
let selected: (ModelInfo & { label: string; value: string }) | undefined = $derived.by(() => {
3536
// let's select a default model
3637
if (value) {
37-
selected = { ...value, label: value.name, value: value.id };
38+
return { ...value, label: value.name, value: value.id };
39+
} else {
40+
return undefined;
3841
}
39-
}
42+
});
4043
4144
function handleOnChange(nValue: (ModelInfo & { label: string; value: string }) | undefined): void {
4245
value = nValue;

packages/frontend/src/pages/StartRecipe.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ function handleOnClick(): void {
187187
<!-- model form -->
188188
<label for="select-model" class="pt-4 block mb-2 font-bold text-[var(--pd-content-card-header-text)]"
189189
>Model</label>
190-
<ModelSelect bind:value={model} disabled={loading} recommended={recipe.recommended} models={models} />
190+
<ModelSelect value={model} disabled={loading} recommended={recipe.recommended} models={models} />
191191
{#if model && model.file === undefined}
192192
<div class="text-gray-800 text-sm flex items-center">
193193
<Fa class="mr-2" icon={faWarning} />

0 commit comments

Comments
 (0)