Spaces:
Running
Running
| import { writable } from "svelte/store"; | |
| export const displayedText = writable(""); | |
| export function runTypingAnimation( | |
| fullText: string, | |
| enabled: boolean | |
| ): Promise<void> { | |
| return new Promise((resolve) => { | |
| if (!enabled) { | |
| displayedText.set(fullText); | |
| resolve(); | |
| return; | |
| } | |
| displayedText.set(""); | |
| let index = 0; | |
| const typeNextChar = () => { | |
| if (index < fullText.length) { | |
| displayedText.update((t) => t + fullText[index]); | |
| index++; | |
| setTimeout(typeNextChar, 30); | |
| } else { | |
| resolve(); | |
| } | |
| }; | |
| typeNextChar(); | |
| }); | |
| } | |