From facaabd4ebc2196ea8b9450369402ccf69ae966e Mon Sep 17 00:00:00 2001 From: Avery Felts Date: Tue, 20 Jan 2026 23:32:45 -0700 Subject: [PATCH] Remove artificial 30-second delay from generation loading bar Loading bar now only displays during actual beat generation instead of forcing a fixed 30-second wait time. Co-Authored-By: Claude Opus 4.5 --- components/lofi-generator/LofiGenerator.tsx | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/components/lofi-generator/LofiGenerator.tsx b/components/lofi-generator/LofiGenerator.tsx index 64cebd4..7eba5d5 100644 --- a/components/lofi-generator/LofiGenerator.tsx +++ b/components/lofi-generator/LofiGenerator.tsx @@ -78,32 +78,24 @@ export function LofiGenerator() { setIsGenerating(true); setGenerationProgress(0); - // Simulate 30-second generation with intermittent progress - const totalDuration = 30000; // 30 seconds - const updateInterval = 100; // Update every 100ms - const steps = totalDuration / updateInterval; + // Animate progress while generating let currentProgress = 0; - const progressInterval = setInterval(() => { - // Intermittent progress - sometimes jumps, sometimes slow - const jump = Math.random() > 0.7 ? Math.random() * 5 : Math.random() * 2; - currentProgress = Math.min(currentProgress + (100 / steps) + jump, 99); + const jump = Math.random() > 0.5 ? Math.random() * 15 : Math.random() * 8; + currentProgress = Math.min(currentProgress + jump, 90); setGenerationProgress(currentProgress); - }, updateInterval); + }, 50); - // Actually generate the beat + // Generate the beat await generateNewBeat(); - // Wait for the full 30 seconds - await new Promise((resolve) => setTimeout(resolve, totalDuration)); - clearInterval(progressInterval); setGenerationProgress(100); setTimeout(() => { setIsGenerating(false); setGenerationProgress(0); - }, 500); + }, 300); }; return (