| 486 | } |
| 487 | |
| 488 | function updatePrice(price: number) { |
| 489 | const priceEl = document.getElementById('current-price')!; |
| 490 | const prevPrice = parseFloat(priceEl.dataset.price || '0'); |
| 491 | |
| 492 | priceEl.textContent = `$${price.toFixed(2)}`; |
| 493 | priceEl.dataset.price = price.toString(); |
| 494 | |
| 495 | // Flash color on change |
| 496 | priceEl.classList.remove('price-up', 'price-down'); |
| 497 | if (price > prevPrice) { |
| 498 | priceEl.classList.add('price-up'); |
| 499 | } else if (price < prevPrice) { |
| 500 | priceEl.classList.add('price-down'); |
| 501 | } |
| 502 | } |
| 503 | |
| 504 | function startStatsLoop() { |
| 505 | function updateLoop() { |