import { useParams, Link } from 'react-router-dom';
import { articles } from '../data/articles';
import ArticleCard from '../components/ArticleCard';
import SEO from '../components/SEO';
import { ChevronRight } from 'lucide-react';
import { useLanguage } from '../contexts/LanguageContext';
import { CATEGORY_MAP } from '../constants';
export default function CategoryPage() {
const { categorySlug } = useParams();
const { lang } = useLanguage();
const getCategoryData = (slug: string) => {
const entry = Object.entries(CATEGORY_MAP).find(([_, value]) => value.slug === slug);
if (entry) {
const [originalName, data] = entry;
return {
name: data.name,
originalName: originalName,
description: `Deep dives, case studies and tactical analysis on ${data.name.toLowerCase()}.`
};
}
return {
name: slug.charAt(0).toUpperCase() + slug.slice(1).replace(/-/g, ' '),
originalName: slug,
description: 'Artigos e anĂ¡lises sobre o ecossistema digital.'
};
};
const { name: categoryName, originalName, description: categoryDescription } = getCategoryData(categorySlug || '');
const filteredArticles = articles.filter(a => {
// If we have a map entry, match by original category name
if (originalName) {
return a.category === originalName;
}
// Fallback strategy
const slugfiedCategory = a.category.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/\s+/g, '-');
return slugfiedCategory === categorySlug;
});
return (
<>
{categoryDescription}