Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
inference-widgets
/
packages
/widgets
/src
/lib
/components
/InferenceWidget
/shared
/WidgetModelLoading
/WidgetModelLoading.svelte
<script lang="ts"> | |
import { onDestroy, onMount } from "svelte"; | |
import IconSpin from "$lib/components/Icons/IconSpin.svelte"; | |
export let estimatedTime: number; | |
let interval: any; | |
let progressRatio = 0; | |
let timeElapsed = 0; | |
onMount(() => { | |
interval = setInterval(() => { | |
timeElapsed += 1; | |
const ratio = timeElapsed / estimatedTime; | |
progressRatio = ratio < 0.96 ? ratio : 0.96; | |
}, 500); | |
}); | |
onDestroy(() => { | |
if (interval) { | |
clearInterval(interval); | |
} | |
}); | |
</script> | |
<div class="mt-3 flex h-10"> | |
<div | |
class="relative z-0 flex flex-1 items-center justify-center rounded-lg bg-gray-50 text-gray-600 shadow-inner dark:bg-gray-950" | |
> | |
<div | |
class="absolute inset-y-0 left-0 rounded-lg bg-gradient-to-r from-purple-200 to-purple-100 transition-all dark:from-purple-800 dark:to-purple-900" | |
style="width: {progressRatio * 100}%;" | |
/> | |
<IconSpin classNames="text-purple-400 dark:text-purple-200 animate-spin mr-2 z-10" /> | |
<span class="z-10">Model is loading</span> | |
</div> | |
</div> | |