coyotte508's picture
coyotte508 HF staff
🍱 Copy folders from huggingface.js
b2ecf7d
raw
history blame
1.02 kB
<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>