diff --git a/src/main.js b/src/main.js
index 1432a5d..f6ede17 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,11 +1,15 @@
import './styles.css'
// Configuration
-const UPDATE_INTERVAL = 250 // ms
+const UPDATE_INTERVAL = 2000 // ms
const HISTORY_DURATION = 300 // seconds
-const MAX_HISTORY_POINTS = Math.ceil((HISTORY_DURATION * 1000) / UPDATE_INTERVAL) // 1200 points
+const MAX_HISTORY_POINTS = Math.ceil((HISTORY_DURATION * 1000) / UPDATE_INTERVAL) // 150 points
const REQUEST_TIMEOUT = 5000 // ms
+// Pause state
+let isPaused = false
+let intervalId = null
+
// Hosts to monitor (IPv4 preferred endpoints)
const HOSTS = [
{ name: 'Google Cloud Console', url: 'https://console.cloud.google.com', color: '#4285f4' },
@@ -201,11 +205,27 @@ function createUI() {
app.innerHTML = `
@@ -374,13 +394,48 @@ function handleResize() {
})
}
+// Toggle pause state
+function togglePause() {
+ isPaused = !isPaused
+
+ const pauseIcon = document.getElementById('pause-icon')
+ const playIcon = document.getElementById('play-icon')
+ const pauseText = document.getElementById('pause-text')
+ const statusIndicator = document.getElementById('status-indicator')
+
+ if (isPaused) {
+ // Stop the interval
+ if (intervalId) {
+ clearInterval(intervalId)
+ intervalId = null
+ }
+ pauseIcon.classList.add('hidden')
+ playIcon.classList.remove('hidden')
+ pauseText.textContent = 'Resume'
+ statusIndicator.textContent = 'Paused'
+ statusIndicator.className = 'text-yellow-400'
+ } else {
+ // Resume the interval
+ measureAll()
+ intervalId = setInterval(measureAll, UPDATE_INTERVAL)
+ pauseIcon.classList.remove('hidden')
+ playIcon.classList.add('hidden')
+ pauseText.textContent = 'Pause'
+ statusIndicator.textContent = 'Running'
+ statusIndicator.className = 'text-green-400'
+ }
+}
+
// Initialize
function init() {
createUI()
+ // Wire up pause button
+ document.getElementById('pause-btn').addEventListener('click', togglePause)
+
// Start measurement loop
measureAll()
- setInterval(measureAll, UPDATE_INTERVAL)
+ intervalId = setInterval(measureAll, UPDATE_INTERVAL)
// Handle resize
window.addEventListener('resize', handleResize)