diff --git a/app/api/missions/route.ts b/app/api/missions/route.ts index b3bffe9a..c49b8f61 100644 --- a/app/api/missions/route.ts +++ b/app/api/missions/route.ts @@ -2,6 +2,7 @@ import { NextResponse } from 'next/server'; import { getServerSession } from 'next-auth'; import { authOptions } from "@/app/api/auth/options"; import { prisma } from '@/lib/prisma'; +import { getPublicUrl } from '@/lib/s3'; // Helper function to check authentication async function checkAuth(request: Request) { @@ -82,8 +83,14 @@ export async function GET(request: Request) { // Get total count const totalCount = await prisma.mission.count({ where }); + // Transform logo paths to public URLs + const missionsWithPublicUrls = missions.map(mission => ({ + ...mission, + logo: mission.logo ? getPublicUrl(mission.logo) : null + })); + return NextResponse.json({ - missions, + missions: missionsWithPublicUrls, pagination: { total: totalCount, offset, diff --git a/app/missions/page.tsx b/app/missions/page.tsx index 2d16a67a..636915bd 100644 --- a/app/missions/page.tsx +++ b/app/missions/page.tsx @@ -199,12 +199,12 @@ export default function MissionsPage() {
{mission.logo ? ( {mission.name} { console.log("Logo failed to load:", mission.logo); - console.log("Full URL attempted:", mission.logo ? getPublicUrl(mission.logo) : 'undefined logo'); + console.log("Full URL attempted:", mission.logo); // If the image fails to load, show the fallback (e.currentTarget as HTMLImageElement).style.display = 'none'; // Show the fallback div