Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
inference-widgets
/
packages
/widgets
/src
/lib
/components
/InferenceWidget
/shared
/WidgetSubmitBtn
/WidgetSubmitBtn.svelte
<script lang="ts"> | |
import LogInPopover from "../../../LogInPopover/LogInPopover.svelte"; | |
import IconSpin from "../../..//Icons/IconSpin.svelte"; | |
import { isLoggedIn } from "../../stores.js"; | |
import { createEventDispatcher } from "svelte"; | |
export let classNames = ""; | |
export let isDisabled = false; | |
export let isLoading: boolean; | |
export let label = "Compute"; | |
export let onClick: () => void; | |
export let withParentLoginPopover = false; | |
let popOverOpen = false; | |
const dispatch = createEventDispatcher<{ logInPopover: void }>(); | |
function _onClick() { | |
if (!$isLoggedIn) { | |
if (withParentLoginPopover) { | |
// tell parent element to show log in pop over | |
dispatch("logInPopover"); | |
} else { | |
popOverOpen = true; | |
} | |
return; | |
} | |
onClick(); | |
} | |
</script> | |
{#if !isDisabled} | |
<LogInPopover bind:open={popOverOpen}> | |
<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> | |
</LogInPopover> | |
{/if} | |