Pulse watchlist nav icon during active watchlist scan

pull/641/head
Broque Thomas 7 days ago
parent 3ae0ac9d55
commit 8dd39dee65

@ -465,7 +465,13 @@ function initializeWebSocket() {
// Phase 5 event listeners (sync/discovery progress + scans)
socket.on('sync:progress', (data) => updateSyncProgressFromData(data));
socket.on('discovery:progress', (data) => updateDiscoveryProgressFromData(data));
socket.on('scan:watchlist', (data) => updateWatchlistScanFromData(data));
socket.on('scan:watchlist', (data) => {
updateWatchlistScanFromData(data);
const watchlistBtn = document.querySelector('.nav-button[data-page="watchlist"]');
if (watchlistBtn) {
watchlistBtn.classList.toggle('nav-watchlist-scanning', data.status === 'scanning');
}
});
socket.on('scan:media', (data) => updateMediaScanFromData(data));
socket.on('wishlist:stats', (data) => updateWishlistStatsFromData(data));
// Phase 6: Automation progress

@ -449,6 +449,36 @@ body {
color: rgba(var(--accent-rgb), 0.7);
}
.nav-button.nav-watchlist-scanning .nav-icon {
animation: watchlist-scan-glow 1.6s ease-in-out infinite;
}
.nav-button.nav-watchlist-scanning .nav-svg {
animation: watchlist-scan-svg 1.6s ease-in-out infinite;
}
@keyframes watchlist-scan-glow {
0%, 100% {
box-shadow:
0 2px 4px rgba(0, 0, 0, 0.15),
inset 0 1px 0 rgba(255, 255, 255, 0.06),
0 0 6px rgba(var(--accent-rgb), 0.25);
border-color: rgba(var(--accent-rgb), 0.2);
}
50% {
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.08),
0 0 14px rgba(var(--accent-rgb), 0.55);
border-color: rgba(var(--accent-rgb), 0.5);
}
}
@keyframes watchlist-scan-svg {
0%, 100% { opacity: 0.7; }
50% { opacity: 1; filter: drop-shadow(0 0 3px rgba(var(--accent-rgb), 0.8)); }
}
.nav-button:hover .nav-icon {
color: rgba(255, 255, 255, 0.95);
background: linear-gradient(135deg,

Loading…
Cancel
Save