Files
windmill/frontend/src/lib/components/flows/pickers/PickScript.svelte
T
2023-10-13 20:34:39 +02:00

45 lines
1.1 KiB
Svelte

<script lang="ts">
import ItemPicker from '$lib/components/ItemPicker.svelte'
import { ScriptService } from '$lib/gen'
import { workspaceStore } from '$lib/stores'
import { createEventDispatcher } from 'svelte'
import Button from '$lib/components/common/button/Button.svelte'
import { Code } from 'lucide-svelte'
export let kind: string
type Item = { summary: String; path: String; version?: String }
let itemPicker: ItemPicker
const dispatch = createEventDispatcher()
async function loadItems(): Promise<Item[]> {
return await ScriptService.listScripts({ workspace: $workspaceStore!, kinds: kind })
}
</script>
<ItemPicker
bind:this={itemPicker}
pickCallback={(path, summary) => {
dispatch('pick', { path, summary, kind })
}}
itemName={'Script'}
extraField="summary"
{loadItems}
/>
<Button
on:click={() => itemPicker.openDrawer()}
btnClasses="w-24 truncate"
size="sm"
spacingSize="md"
variant="border"
color="light"
>
<div class="flex justify-center flex-col items-center gap-2">
<Code size={18} />
<span class="text-xs">Script</span>
</div>
</Button>