Update gallery images to use optimized Cloudinary URLs and portrait aspect ratio

Replaces Dropbox links with Cloudinary URLs, updates image aspect ratio to 9:16 for portrait display, and optimizes image loading in the gallery component and data.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 1f7e7e89-a520-4970-9645-37daadc466dc
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: e9285bb1-8736-4b8d-ad7c-317df87a118d
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/1f7e7e89-a520-4970-9645-37daadc466dc/tSWS0WO
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
sebastjanartic 2026-03-05 13:29:55 +00:00
parent eb521f24e2
commit 0342071510
3 changed files with 1150 additions and 2341 deletions

View File

@ -13,6 +13,7 @@ interface GalleryImage {
const PAGE_SIZE = 24;
function thumbUrl(src: string) {
if (src.includes("res.cloudinary.com")) return src;
return `/api/gallery/thumb?src=${encodeURIComponent(src)}`;
}
@ -321,7 +322,7 @@ export default function GalleryPage() {
className="group relative rounded-lg overflow-hidden bg-card border border-card-border cursor-pointer flex flex-col"
data-testid={`button-gallery-image-${i}`}
>
<div className="relative aspect-square w-full">
<div className="relative w-full" style={{ aspectRatio: "9/16" }}>
<LazyImage
src={thumbUrl(img.thumb)}
alt={img.artist || img.fileName}

File diff suppressed because it is too large Load Diff

View File

@ -353,7 +353,7 @@ export async function registerRoutes(
}
});
// Gallery API - serves shuffled photos from Dropbox
// Gallery API - serves photos from Cloudinary (gallery-data.json)
const folderArtists: Record<string, string> = {
"2": "Folx Stadl",
"3": "Folx Stadl",
@ -364,16 +364,8 @@ export async function registerRoutes(
app.get("/api/gallery", async (req, res) => {
try {
let data: any[] = [];
if (isConnected()) {
data = await fetchGalleryFromDropbox();
}
if (data.length === 0) {
const galleryPath = path.join(process.cwd(), "server/gallery-data.json");
data = JSON.parse(fs.readFileSync(galleryPath, "utf-8"));
}
const galleryPath = path.join(process.cwd(), "server/gallery-data.json");
let data: any[] = JSON.parse(fs.readFileSync(galleryPath, "utf-8"));
data = data.map((img: any) => {
if (!img.artist && folderArtists[img.folder]) {