import { useState, useEffect, useRef } from "react"; import Layout from "@/components/Layout"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import LoadingScreen from "@/components/LoadingScreen"; import { aethexToast } from "@/lib/aethex-toast"; import { Link } from "react-router-dom"; import { PenTool, Calendar, User, ArrowRight, Search, Filter, Bookmark, Share, ThumbsUp, MessageCircle, TrendingUp, } from "lucide-react"; export default function Blog() { const [isLoading, setIsLoading] = useState(true); const [selectedCategory, setSelectedCategory] = useState("all"); const toastShownRef = useRef(false); const [posts, setPosts] = useState([]); const [featuredPost, setFeaturedPost] = useState(null); useEffect(() => { let cancelled = false; (async () => { try { const res = await fetch("/api/blog?limit=50"); const data = res.ok ? await res.json() : []; if (!cancelled && Array.isArray(data)) { const mapped = data.map((r: any) => ({ id: r.id, slug: r.slug, title: r.title, excerpt: r.excerpt, author: r.author, date: r.date, readTime: r.read_time, category: r.category || "General", image: r.image, likes: r.likes || 0, comments: r.comments || 0, trending: Boolean(r.trending), })); setPosts(mapped); setFeaturedPost(mapped[0] || null); } } catch (e) { console.warn("Blog fetch failed:", e); } finally { if (!cancelled) { setIsLoading(false); if (!toastShownRef.current) { aethexToast.system("AeThex Blog loaded successfully"); toastShownRef.current = true; } } } })(); return () => { cancelled = true; }; }, []); const categories = [ { id: "all", name: "All Posts", count: 45 }, { id: "technology", name: "Technology", count: 18 }, { id: "tutorials", name: "Tutorials", count: 12 }, { id: "research", name: "Research", count: 8 }, { id: "company", name: "Company News", count: 7 }, ]; const postsStatic = [ { 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", likes: 89, comments: 15, trending: true, }, { 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", likes: 156, comments: 34, trending: false, }, { title: "AeThex Labs: Breakthrough in Neural Network Compression", excerpt: "Our research team achieves 90% model size reduction while maintaining accuracy for mobile game AI.", author: "Dr. Aisha Patel", date: "December 8, 2024", readTime: "5 min read", category: "Research", likes: 203, comments: 41, trending: true, }, { title: "Introducing AeThex Cloud Gaming Platform", excerpt: "Launch games instantly across any device with our new cloud gaming infrastructure and global CDN.", author: "AeThex Team", date: "December 5, 2024", readTime: "4 min read", category: "Company News", likes: 278, comments: 52, trending: false, }, { title: "Real-time Ray Tracing in Web Games", excerpt: "Tutorial: Implementing hardware-accelerated ray tracing in browser-based games using WebGPU.", author: "Jordan Kim", date: "December 3, 2024", readTime: "15 min read", category: "Tutorials", likes: 94, comments: 18, trending: false, }, { title: "The Evolution of Game AI: From Scripts to Neural Networks", excerpt: "A comprehensive look at how artificial intelligence in games has evolved and where it's heading next.", author: "Dr. Michael Chen", date: "December 1, 2024", readTime: "10 min read", category: "Technology", likes: 167, comments: 29, trending: false, }, ]; const filteredPosts = selectedCategory === "all" ? posts.length ? posts : postsStatic : (posts.length ? posts : postsStatic).filter( (post) => (post.category || "").toLowerCase() === selectedCategory, ); if (isLoading) { return ( ); } return (
{/* Hero Section */}
AeThex Blog

Insights & Innovation

Stay updated with the latest developments in game technology, AI research, and industry insights from the AeThex team.

{/* Search and Filter */}
{/* Categories */}
{categories.map((category, index) => ( ))}
{/* Featured Post */}
{featuredPost.title}
Featured {featuredPost.title} {featuredPost.excerpt}
{featuredPost.author}
{featuredPost.date}
{featuredPost?.readTime && ( {featuredPost.readTime} )}
{featuredPost?.likes || 0}
{featuredPost?.comments || 0}
{/* Recent Posts */}

Recent Articles

Latest insights and tutorials from our team

{filteredPosts.map((post, index) => (
{post.category} {post.trending && ( Trending )}
{post.title} {post.excerpt}
{post.author}
{post.date}
{post.readTime}
{post.likes}
{post.comments}
))}
{/* Newsletter CTA */}

Stay in the Loop

Subscribe to our newsletter for the latest articles, tutorials, and technology insights delivered directly to your inbox.

Join 10,000+ developers getting weekly insights. Unsubscribe anytime.

); }