{article.title_burmese}
{/* Excerpt */}{article.excerpt_burmese}
{/* Tags */} {article.tags_burmese && article.tags_burmese.length > 0 && (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 (
{category.description}
)}{articles.length} αα±α¬ααΊαΈαα«αΈ
α€α‘αα»αα―αΈα‘α α¬αΈα‘αα½ααΊ αα±α¬ααΊαΈαα«αΈαααΎααα±αΈαα«α
αα°αα α¬αα»ααΊααΎα¬ααα―α· ααΌααΊαα½α¬αΈαααΊ{article.excerpt_burmese}
{/* Tags */} {article.tags_burmese && article.tags_burmese.length > 0 && (