File size: 796 Bytes
b2ecf7d
9d298eb
b2ecf7d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<script lang="ts">
	import IconSpin from "../../..//Icons/IconSpin.svelte";

	export let classNames = "";
	export let isDisabled = false;
	export let isLoading: boolean;
	export let label = "Compute";
	export let onClick: () => void;

	function onKeyDown(e: KeyboardEvent) {
		if (isLoading || isDisabled) {
			return;
		}
		// run inference on cmd+Enter
		if (e.code === "Enter" && (e.metaKey || e.ctrlKey)) {
			e.preventDefault();
			onClick();
		}
	}
</script>

<svelte:window on:keydown={onKeyDown} />

{#if !isDisabled}
	<button
		class="btn-widget h-10 w-24 px-5 {classNames}"
		disabled={isDisabled || isLoading}
		on:click|preventDefault={onClick}
		type="submit"
	>
		{#if isLoading}
			<IconSpin classNames="text-gray-600 animate-spin" />
		{:else}
			{label}
		{/if}
	</button>
{/if}