import { sql } from '@/lib/db' export const dynamic = "force-dynamic" import { notFound } from 'next/navigation' import Link from 'next/link' import Image from 'next/image' async function getCategory(slug: string) { try { const { rows } = await sql` SELECT * FROM categories WHERE slug = ${slug} ` return rows[0] || null } catch (error) { return null } } async function getArticlesByCategory(categorySlug: string) { try { const { rows } = await sql` SELECT a.*, c.name_burmese as category_name_burmese, c.slug as category_slug, array_agg(DISTINCT t.name_burmese) FILTER (WHERE t.name_burmese IS NOT NULL) as tags_burmese, array_agg(DISTINCT t.slug) FILTER (WHERE t.slug IS NOT NULL) as tag_slugs FROM articles a JOIN categories c ON a.category_id = c.id LEFT JOIN article_tags at ON a.id = at.article_id LEFT JOIN tags t ON at.tag_id = t.id WHERE c.slug = ${categorySlug} AND a.status = 'published' GROUP BY a.id, c.name_burmese, c.slug ORDER BY a.published_at DESC LIMIT 100 ` return rows } catch (error) { console.error('Error fetching articles by category:', error) return [] } } export default async function CategoryPage({ params }: { params: { slug: string } }) { const [category, articles] = await Promise.all([ getCategory(params.slug), getArticlesByCategory(params.slug) ]) if (!category) { notFound() } // Get category emoji based on slug const getCategoryEmoji = (slug: string) => { const emojiMap: { [key: string]: string } = { 'ai-news': 'πŸ“°', 'tutorials': 'πŸ“š', 'tips-tricks': 'πŸ’‘', 'upcoming': 'πŸš€', } return emojiMap[slug] || 'πŸ“' } return (
{/* Header */}
{getCategoryEmoji(params.slug)}

{category.name_burmese}

{category.description && (

{category.description}

)}

{articles.length} ဆောင်းပါး

{/* Articles */}
{articles.length === 0 ? (
{getCategoryEmoji(params.slug)}

ကထမျိုးထစားထတွက် α€†α€±α€¬α€„α€Ία€Έα€•α€«α€Έα€™α€›α€Ύα€­α€žα€±α€Έα€•α€«α‹

α€™α€°α€œα€…α€¬α€™α€»α€€α€Ία€”α€Ύα€¬α€žα€­α€―α€· α€•α€Όα€”α€Ία€žα€½α€¬α€Έα€›α€”α€Ί
) : (
{articles.map((article: any) => (
{/* Cover Image */} {article.featured_image && (
{article.title_burmese}
)}
{/* Category Badge */}
{article.category_name_burmese}
{/* Title */}

{article.title_burmese}

{/* Excerpt */}

{article.excerpt_burmese}

{/* Tags */} {article.tags_burmese && article.tags_burmese.length > 0 && (
{article.tags_burmese.slice(0, 3).map((tag: string, idx: number) => ( #{tag} ))}
)} {/* Meta */}
{article.reading_time} α€™α€­α€”α€…α€Ί {article.view_count} views
))}
)}
) } export async function generateMetadata({ params }: { params: { slug: string } }) { const category = await getCategory(params.slug) if (!category) { return { title: 'Category Not Found', } } return { title: `${category.name_burmese} - Burmddit`, description: category.description || `${category.name_burmese} ထမျိုးထစား၏ ဆောင်းပါးများ`, } }