Prevents data refresh from interrupting carousel animations, especially when looping from last event back to first. Problem: - Carousel rotates every 5 seconds - Data refreshes every 10 seconds - With 4 events: collision at 20s when looping back to index 0 - Refresh would cut off the smooth slide-up transition Solution: - Track transition state with isTransitioning flag - If renderEvents() called during transition, store data and return early - After 800ms transition completes, render pending data automatically - Max delay: 800ms, only when collision occurs - 99% of refreshes happen instantly (no collision) Benefits: - Works with ANY number of events (4 or 400) - Smooth transitions every time - Minimal delay (max 800ms, rarely happens) - Future-proof - no magic timing numbers - Console logs show when delay occurs Timeline example (4 events): - 0s: test 2 (index 0) - 5s: test again (index 1) - transition starts, isTransitioning=true - 5.8s: transition completes, isTransitioning=false - 10s: REFRESH (no collision, renders immediately) - 15s: test 3 (index 2) - 20s: test (index 3) - transition starts - 20s: REFRESH (collision! delayed) - 20.8s: transition completes, pending data renders ✅ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
38 KiB
38 KiB