From 7f06edee127828baa806bc2ae061546bd48d5d78 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Mon, 29 Sep 2025 04:04:53 +0000 Subject: [PATCH] Add BlogPost page cgen-2460306e91a5433ca2a0a06640ae6219 --- client/pages/BlogPost.tsx | 107 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 client/pages/BlogPost.tsx diff --git a/client/pages/BlogPost.tsx b/client/pages/BlogPost.tsx new file mode 100644 index 00000000..549ec1d8 --- /dev/null +++ b/client/pages/BlogPost.tsx @@ -0,0 +1,107 @@ +import { useMemo } from "react"; +import { useParams, Link } from "react-router-dom"; +import Layout from "@/components/Layout"; +import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import { User, Calendar } from "lucide-react"; +import NotFound from "./NotFound"; + +export default function BlogPost() { + const { slug } = useParams<{ slug: string }>(); + + const featuredPost = { + title: "The Future of Quantum Game Development", + excerpt: + "Exploring how quantum computing will revolutionize game AI, physics simulations, and procedural generation in the next decade.", + author: "Dr. Sarah Chen", + date: "December 15, 2024", + readTime: "8 min read", + category: "Research", + likes: 124, + comments: 23, + image: + "https://images.unsplash.com/photo-1635070041078-e363dbe005cb?w=1200&h=600&fit=crop", + }; + + const posts = [ + featuredPost, + { + title: "Building Scalable Game Architecture with Microservices", + excerpt: + "Learn how to design game backends that can handle millions of concurrent players using modern microservices patterns.", + author: "Marcus Rodriguez", + date: "December 12, 2024", + readTime: "6 min read", + category: "Technology", + }, + { + title: "Advanced Unity Optimization Techniques", + excerpt: + "Performance optimization strategies that can boost your Unity game's frame rate by up to 300%.", + author: "Alex Thompson", + date: "December 10, 2024", + readTime: "12 min read", + category: "Tutorials", + }, + ]; + + const normalize = (t?: string) => + (t || "") + .toLowerCase() + .trim() + .replace(/[^a-z0-9\s-]/g, "") + .replace(/\s+/g, "-") + .replace(/-+/g, "-"); + + const post = useMemo(() => { + if (!slug) return null; + return posts.find((p) => normalize(p.title) === normalize(slug)); + }, [slug]); + + if (!post) { + return ; + } + + return ( + +
+
+ + {post.title} + + {post.category} + {post.title} + {post.excerpt} +
+
+ {post.author} +
+
+ {post.date} +
+
+
+ + {/* Simple placeholder content for the article body */} +

+ {post.excerpt} +

+ +

+ This is a sample article page. In production the blog content would be loaded from the CMS or database and rendered here. +

+ +

+ Author: {post.author} +

+ +
+ Back to Blog +
+
+
+
+
+
+ ); +}