fix: fix DynSelect
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
import type { Script } from '$lib/gen'
|
||||
import { usePromise } from '$lib/svelte5Utils.svelte'
|
||||
import { deepEqual } from 'fast-equals'
|
||||
import JobLoader from './JobLoader.svelte'
|
||||
import JobLoader, { type Callbacks } from './JobLoader.svelte'
|
||||
import Select from './select/Select.svelte'
|
||||
import Tooltip from './Tooltip.svelte'
|
||||
import { Loader2 } from 'lucide-svelte'
|
||||
@@ -45,25 +45,27 @@
|
||||
|
||||
async function getItemsFromOptions() {
|
||||
return new Promise<{ label: string; value: any }[]>((resolve, reject) => {
|
||||
let cb = {
|
||||
done(res) {
|
||||
if (!res || !Array.isArray(res)) {
|
||||
let cb: Callbacks = {
|
||||
doneResult({ result }) {
|
||||
if (!result || !Array.isArray(result)) {
|
||||
reject('Result was not an array')
|
||||
return
|
||||
}
|
||||
if (res.length == 0) resolve([])
|
||||
if (res.every((x) => typeof x == 'string')) {
|
||||
res = res.map((x) => ({ label: x, value: x }))
|
||||
} else if (res.find((x) => validSelectObject(x) != undefined)) {
|
||||
reject(validSelectObject(res.find((x) => validSelectObject(x) != undefined)))
|
||||
if (result.length == 0) resolve([])
|
||||
if (result.every((x) => typeof x == 'string')) {
|
||||
result = result.map((x) => ({ label: x, value: x }))
|
||||
} else if (result.find((x) => validSelectObject(x) != undefined)) {
|
||||
reject(validSelectObject(result.find((x) => validSelectObject(x) != undefined)))
|
||||
} else {
|
||||
if (filterText != undefined && filterText != '')
|
||||
res = res.filter((x) => x['label'].includes(filterText))
|
||||
resolve(res)
|
||||
result = result.filter((x) => x['label'].includes(filterText))
|
||||
resolve(result)
|
||||
}
|
||||
},
|
||||
cancel: () => reject(),
|
||||
error: (err) => reject(err)
|
||||
doneError({ id, error }) {
|
||||
reject(error)
|
||||
},
|
||||
}
|
||||
helperScript?.type == 'inline'
|
||||
? resultJobLoader?.runPreview(
|
||||
@@ -97,7 +99,7 @@
|
||||
</script>
|
||||
|
||||
{#if helperScript}
|
||||
<JobLoader bind:this={resultJobLoader} />
|
||||
<JobLoader onlyResult bind:this={resultJobLoader} />
|
||||
|
||||
<div class="w-full flex-col flex">
|
||||
<Select
|
||||
|
||||
Reference in New Issue
Block a user