From c6e3f7b4e6b349c962de6b802b8a54c92fd9066d Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Tue, 11 Nov 2025 23:00:14 +0000 Subject: [PATCH] completionId: cgen-524f9880492f4a358c7402f466038e1d cgen-524f9880492f4a358c7402f466038e1d --- client/pages/BlogPost.tsx | 54 ++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/client/pages/BlogPost.tsx b/client/pages/BlogPost.tsx index 055485f6..3916d86d 100644 --- a/client/pages/BlogPost.tsx +++ b/client/pages/BlogPost.tsx @@ -29,32 +29,40 @@ export default function BlogPost() { let data: any = null; try { - // Attempt to parse JSON response from server route - if (res.ok) data = await res.json(); - } catch (e) { - // If server returned HTML (dev server) or invalid JSON, fall back to Supabase REST - try { - const sbUrl = import.meta.env.VITE_SUPABASE_URL; - const sbKey = import.meta.env.VITE_SUPABASE_ANON_KEY; - if (sbUrl && sbKey) { - const url = `${sbUrl.replace(/\/$/, "")}/rest/v1/blog_posts?slug=eq.${encodeURIComponent( - String(slug), - )}&select=id,slug,title,excerpt,author,date,read_time,category,image,body_html,published_at`; - const sbRes = await fetch(url, { - headers: { - apikey: sbKey as string, - Authorization: `Bearer ${sbKey}`, - }, - }); - if (sbRes.ok) { - const arr = await sbRes.json(); - data = Array.isArray(arr) && arr.length ? arr[0] : null; - } + // Attempt to parse JSON response from server route + if (res.ok) data = await res.json(); + } catch (e) { + // If server returned HTML (dev server) or invalid JSON, fall back to Supabase REST + try { + const sbUrl = import.meta.env.VITE_SUPABASE_URL; + const sbKey = import.meta.env.VITE_SUPABASE_ANON_KEY; + if (sbUrl && sbKey) { + const url = `${sbUrl.replace(/\/$/, "")}/rest/v1/blog_posts?slug=eq.${encodeURIComponent( + String(slug), + )}&select=id,slug,title,excerpt,author,date,read_time,category,image,body_html,published_at`; + const sbRes = await fetch(url, { + headers: { + apikey: sbKey as string, + Authorization: `Bearer ${sbKey}`, + }, + }); + if (sbRes.ok) { + const arr = await sbRes.json(); + data = Array.isArray(arr) && arr.length ? arr[0] : null; } - } catch (err) { - console.warn("Supabase fallback fetch failed:", err); } + } catch (err) { + console.warn("Supabase fallback fetch failed:", err); } + } + + // If API and Supabase both fail, try seed data + if (!data) { + const seedPost = blogSeedPosts.find((p) => p.slug === slug); + if (seedPost) { + data = seedPost; + } + } if (!cancelled) setPost(data); } catch (e) {