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 "../../..//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> | |