🎨 Perfect Thumbnail Layout & Clean Up Debug

 Thumbnail Layout Improvements:
- Updated CollectionThumbnail to show 5 cards total (1 main + 4 in 2x2 grid)
- Better visual ratio with filled 2x2 grid on the right side
- Applied consistent design to both /collections and /community/collections
- Improved spacing and proportions for better visual balance

🧹 Code Cleanup:
- Removed debug console.log statements from thumbnails API
- Clean, production-ready code with proper error handling
- Thumbnails API now properly handles Neon SQL result structure

🎯 Final Result:
- 😢 Empty collections → crying emoji placeholder
- 🃏 Collections with cards → white card boxes with real images
- 🖼️ Custom thumbnails → uploaded hero images
- Perfect 5-card layout with balanced proportions

The new thumbnail design is now complete and working perfectly! 🖼️
This commit is contained in:
Randall Stillwell 2025-07-27 14:48:42 -05:00
parent 6dc97aaae5
commit 2e172815b9
3 changed files with 26 additions and 33 deletions

View file

@ -114,11 +114,6 @@ export default async function handler(req, res) {
LIMIT 5
`;
console.log('🔍 thumbnailsResult type:', typeof thumbnailsResult);
console.log('🔍 thumbnailsResult:', thumbnailsResult);
console.log('🔍 thumbnailsResult.rows:', thumbnailsResult?.rows);
console.log('🔍 Array.isArray(thumbnailsResult):', Array.isArray(thumbnailsResult));
// Handle the result properly based on its structure
let thumbnailsArray;
if (Array.isArray(thumbnailsResult)) {

View file

@ -253,10 +253,10 @@ export default function Collections() {
const CollectionThumbnail = ({ collection }) => {
const { thumbnails = [], image } = collection;
// If collection has a custom hero image, use it
// If there's a custom image, show it
if (image) {
return (
<div className="w-full h-48 rounded-xl overflow-hidden mb-4" style={{ backgroundColor: 'var(--bg-tertiary)' }}>
<div className="w-full h-48 rounded-xl overflow-hidden mb-4">
<img
src={image}
alt={collection.name}
@ -266,7 +266,7 @@ export default function Collections() {
);
}
// If no thumbnails available, show crying emoji placeholder
// If no cards, show crying emoji
if (!thumbnails || thumbnails.length === 0) {
return (
<div className="w-full h-48 rounded-xl mb-4 flex items-center justify-center" style={{ backgroundColor: 'var(--bg-tertiary)' }}>
@ -278,13 +278,12 @@ export default function Collections() {
);
}
// Show card layout with white boxes
const mainCard = thumbnails[0]; // Featured card (largest)
const gridCards = thumbnails.slice(1, 5); // Up to 4 additional cards
const mainCard = thumbnails[0];
const gridCards = thumbnails.slice(1, 5); // Get up to 4 cards for the 2x2 grid
return (
<div className="w-full h-48 rounded-xl overflow-hidden mb-4 p-3 flex gap-2" style={{ backgroundColor: 'var(--bg-tertiary)' }}>
{/* Main card (left side - 2/3 width) */}
{/* Main card (larger, left side) */}
<div className="flex-2 h-full">
{mainCard ? (
<div className="w-full h-full bg-white rounded-lg overflow-hidden shadow-sm border" style={{ borderColor: 'var(--border)' }}>
@ -299,7 +298,7 @@ export default function Collections() {
)}
</div>
{/* Grid of smaller cards (right side - 1/3 width) */}
{/* Grid of 4 smaller cards (right side) */}
<div className="flex-1 h-full">
<div className="grid grid-cols-2 gap-2 h-full">
{Array.from({ length: 4 }).map((_, index) => {

View file

@ -119,10 +119,10 @@ export default function CommunityCollections() {
const CollectionThumbnail = ({ collection }) => {
const { thumbnails = [], image } = collection;
// If collection has a custom hero image, use it
// If there's a custom image, show it
if (image) {
return (
<div className="w-full h-48 rounded-xl overflow-hidden mb-4" style={{ backgroundColor: 'var(--bg-tertiary)' }}>
<div className="w-full h-48 rounded-xl overflow-hidden mb-4">
<img
src={image}
alt={collection.name}
@ -132,7 +132,7 @@ export default function CommunityCollections() {
);
}
// If no thumbnails available, show crying emoji placeholder
// If no cards, show crying emoji
if (!thumbnails || thumbnails.length === 0) {
return (
<div className="w-full h-48 rounded-xl mb-4 flex items-center justify-center" style={{ backgroundColor: 'var(--bg-tertiary)' }}>
@ -144,13 +144,12 @@ export default function CommunityCollections() {
);
}
// Show card layout with white boxes
const mainCard = thumbnails[0]; // Featured card (largest)
const gridCards = thumbnails.slice(1, 5); // Up to 4 additional cards
const mainCard = thumbnails[0];
const gridCards = thumbnails.slice(1, 5); // Get up to 4 cards for the 2x2 grid
return (
<div className="w-full h-48 rounded-xl overflow-hidden mb-4 p-3 flex gap-2" style={{ backgroundColor: 'var(--bg-tertiary)' }}>
{/* Main card (left side - 2/3 width) */}
{/* Main card (larger, left side) */}
<div className="flex-2 h-full">
{mainCard ? (
<div className="w-full h-full bg-white rounded-lg overflow-hidden shadow-sm border" style={{ borderColor: 'var(--border)' }}>
@ -165,7 +164,7 @@ export default function CommunityCollections() {
)}
</div>
{/* Grid of smaller cards (right side - 1/3 width) */}
{/* Grid of 4 smaller cards (right side) */}
<div className="flex-1 h-full">
<div className="grid grid-cols-2 gap-2 h-full">
{Array.from({ length: 4 }).map((_, index) => {