Rewrite search flow and enrich preview assets
build-push / docker (push) Successful in 4m6s

This commit is contained in:
AI Assistant
2026-03-13 12:50:25 +09:00
parent de2488654a
commit b78865d4bf
5 changed files with 432 additions and 268 deletions
+17 -2
View File
@@ -133,12 +133,27 @@ function renderResults(results) {
}
for (const item of results) {
const node = cardTemplate.content.firstElementChild.cloneNode(true);
const image = node.querySelector("img");
const previewVideo = node.querySelector(".preview-hover");
node.href = item.link;
node.querySelector("img").src = item.thumbnailUrl || "https://placehold.co/1280x720/0a0a0a/ffffff?text=No+Preview";
node.querySelector("img").alt = item.title;
image.src = item.thumbnailUrl || "https://placehold.co/1280x720/0a0a0a/ffffff?text=Preview";
image.alt = item.title;
node.querySelector("h3").textContent = item.title;
node.querySelector("p").textContent = item.reason;
node.querySelector(".source-badge").textContent = item.source;
if (item.previewVideoUrl) {
previewVideo.src = item.previewVideoUrl;
previewVideo.poster = item.thumbnailUrl || "";
node.addEventListener("mouseenter", () => {
previewVideo.classList.remove("hidden");
previewVideo.play().catch(() => {});
});
node.addEventListener("mouseleave", () => {
previewVideo.pause();
previewVideo.currentTime = 0;
previewVideo.classList.add("hidden");
});
}
searchResults.appendChild(node);
}
}
+2 -1
View File
@@ -128,6 +128,7 @@
<a target="_blank" rel="noreferrer" class="group overflow-hidden rounded-3xl border border-white/10 bg-black/30 transition hover:border-white/30">
<div class="relative aspect-video overflow-hidden bg-zinc-900">
<img class="h-full w-full object-cover transition duration-500 group-hover:scale-105" alt="" />
<video class="preview-hover absolute inset-0 hidden h-full w-full object-cover" muted loop playsinline preload="none"></video>
<div class="absolute left-3 top-3 rounded-full border border-white/20 bg-black/60 px-3 py-1 text-[11px] uppercase tracking-[0.25em] text-white">AI Recommended</div>
<div class="source-badge absolute bottom-3 left-3 rounded-full bg-white px-3 py-1 text-[11px] font-medium uppercase tracking-[0.2em] text-black"></div>
</div>
@@ -138,6 +139,6 @@
</a>
</template>
<script src="/app.js?v=20260313d" defer></script>
<script src="/app.js?v=20260313e" defer></script>
</body>
</html>