Midday / apps /website /image-loader.ts
Jules
Final deployment with all fixes and verified content
c09f67c
interface ImageLoaderParams {
src: string;
width: number;
quality?: number;
}
const CDN_URL = "https://midday.ai";
export default function imageLoader({
src,
width,
quality = 80,
}: ImageLoaderParams): string {
// Skip CDN optimization for localhost (local development)
if (src.includes("localhost") || src.includes("127.0.0.1")) {
return src;
}
// In development, serve local images without CDN
if (process.env.NODE_ENV === "development") {
if (src.startsWith("/")) {
return `${src}?w=${width}&q=${quality}`;
}
return src;
}
// In preview, skip Cloudflare CDN (not available on preview URLs)
const isPreview = process.env.NEXT_PUBLIC_VERCEL_ENV === "preview";
const vercelUrl = process.env.NEXT_PUBLIC_VERCEL_URL;
if (isPreview && vercelUrl) {
if (src.startsWith("/")) {
return `https://${vercelUrl}${src}`;
}
return src;
}
// Production: use Cloudflare CDN transformation
if (src.startsWith("/_next")) {
return `${CDN_URL}/cdn-cgi/image/width=${width},quality=${quality}/${CDN_URL}${src}`;
}
if (src.startsWith("/")) {
return `${CDN_URL}/cdn-cgi/image/width=${width},quality=${quality}/${CDN_URL}${src}`;
}
return `${CDN_URL}/cdn-cgi/image/width=${width},quality=${quality}/${src}`;
}