diff --git a/app/static/public/css/video.css b/app/static/public/css/video.css index ba1cc9a..9109461 100644 --- a/app/static/public/css/video.css +++ b/app/static/public/css/video.css @@ -818,6 +818,14 @@ html[data-theme='dark'] .cache-video-thumb-wrap { border-color: #2b3440; } +html[data-theme='dark'] .cache-video-item.is-active { + background: rgba(148, 163, 184, 0.12); +} + +html[data-theme='dark'] .cache-video-item.is-active .cache-video-thumb-wrap { + border-color: #93c5fd; +} + .cache-video-item { display: flex; align-items: center; @@ -831,6 +839,14 @@ html[data-theme='dark'] .cache-video-thumb-wrap { border-bottom: none; } +.cache-video-item.is-active { + background: rgba(17, 24, 39, 0.06); +} + +.cache-video-item.is-active .cache-video-thumb-wrap { + border-color: #111; +} + .cache-video-meta { min-width: 0; flex: 1; diff --git a/app/static/public/js/video.js b/app/static/public/js/video.js index bdbda00..1c8655e 100644 --- a/app/static/public/js/video.js +++ b/app/static/public/js/video.js @@ -1260,6 +1260,12 @@ return `${y}-${m}-${day} ${hh}:${mm}`; } + function normalizeVideoUrlForCompare(url) { + const raw = String(url || '').trim(); + if (!raw) return ''; + return raw.replace(/\/+$/, ''); + } + async function loadCachedVideos() { const authHeader = await ensurePublicKey(); if (authHeader === null) { @@ -1311,6 +1317,22 @@ } }, { once: true }); }); + const activeUrlRaw = cacheModalPickMode === 'merge_target' + ? mergeTargetVideoUrl + : selectedVideoUrl; + const activeUrl = normalizeVideoUrlForCompare(activeUrlRaw); + if (!activeUrl) return; + const rows = cacheVideoList.querySelectorAll('.cache-video-item'); + let activeRow = null; + rows.forEach((row) => { + const rowUrl = normalizeVideoUrlForCompare(row.getAttribute('data-url') || ''); + const isActive = rowUrl && rowUrl === activeUrl; + row.classList.toggle('is-active', isActive); + if (isActive) activeRow = row; + }); + if (activeRow && typeof activeRow.scrollIntoView === 'function') { + activeRow.scrollIntoView({ block: 'center', behavior: 'smooth' }); + } } function useCachedVideo(url, name) { diff --git a/app/static/public/pages/video.html b/app/static/public/pages/video.html index 3a161eb..8a1d7d0 100644 --- a/app/static/public/pages/video.html +++ b/app/static/public/pages/video.html @@ -18,7 +18,7 @@ - + @@ -318,7 +318,7 @@ - +