From 74902234b3620eccd83c4f5ceb2d91c683e39129 Mon Sep 17 00:00:00 2001 From: ergosteur <1992147+ergosteur@users.noreply.github.com> Date: Sat, 7 Mar 2026 21:46:11 -0500 Subject: [PATCH] fix: restore white glass scanning UI and resolve small image blur bug Key changes: - Corrected logic in PostThumbnail to prevent blur effects on images smaller than 1MiB. - Restored the white glass aesthetic to the scanning dashboard with improved contrast and transparency. - Optimized scanning background transitions to ensure a smooth, flicker-free crossfade. --- src/App.tsx | 10 +++++----- src/components/PostThumbnail.tsx | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index c7f8c30..1550b72 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -290,7 +290,7 @@ export default function App() { ) ) : isScanning ? ( -
+
{currentScanningImage && (
-
+
Scanning Archive...

{scanningPhase === 'Indexing' ? 'Building file index' : 'Parsing metadata & media'}

Phase: {scanningPhase}{scannedCount} / {totalFiles}
-
System Parser Feed
Live Output
{scannedFilesLog.map((log, idx) => (
[{new Date().toLocaleTimeString([], { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' })}]{scanningPhase === 'Indexing' ? 'IDX' : 'PARSE'}{log}
))}{scannedFilesLog.length === 0 &&
Initializing scanner context...
}
+
System Parser Feed
Live Output
{scannedFilesLog.map((log, idx) => (
[{new Date().toLocaleTimeString([], { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' })}]{scanningPhase === 'Indexing' ? 'IDX' : 'PARSE'}{log}
))}{scannedFilesLog.length === 0 &&
Initializing scanner context...
}
) : ( diff --git a/src/components/PostThumbnail.tsx b/src/components/PostThumbnail.tsx index fcdd7cc..429c4aa 100644 --- a/src/components/PostThumbnail.tsx +++ b/src/components/PostThumbnail.tsx @@ -82,8 +82,13 @@ export const PostThumbnail = ({ post, className, thumbnailUrl, onRequestThumbnai } }, [isInView, isVideo, mainMedia.url, mainMedia.size, post.id, onRequestThumbnail, videoThumbnail]); - // Use high-res thumbnail if available, then video thumb, then original (if small enough), then placeholder - const displayUrl = thumbnailUrl || videoThumbnail || (isVideo ? null : post.thumbnail); + // Determine if we are actually expecting a high-res thumbnail + const ONE_MIB = 1024 * 1024; + const isHighRes = !isVideo && mainMedia.size && mainMedia.size > ONE_MIB; + const isGenerating = isHighRes && !thumbnailUrl; + + // Use high-res thumbnail if available, then video thumb, then original + const displayUrl = thumbnailUrl || videoThumbnail || post.thumbnail; if (!displayUrl && isVideo) { return ( @@ -106,7 +111,11 @@ export const PostThumbnail = ({ post, className, thumbnailUrl, onRequestThumbnai