import { Link } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import SEOHead from '@/components/seo/SEOHead'; import BreadcrumbNav from '@/components/seo/BreadcrumbNav'; import { TOOLS_SEO } from '@/config/seoData'; import { generateBreadcrumbs, generateCollectionPage, generateItemList, getSiteOrigin } from '@/utils/seo'; const CATEGORY_ORDER = ['PDF', 'Convert', 'Image', 'AI', 'Utility'] as const; export default function AllToolsPage() { const { t } = useTranslation(); const origin = getSiteOrigin(typeof window !== 'undefined' ? window.location.origin : ''); const path = '/tools'; const url = `${origin}${path}`; const groupedTools = CATEGORY_ORDER.map((category) => ({ category, items: TOOLS_SEO.filter((tool) => tool.category === category), })).filter((group) => group.items.length > 0); const jsonLd = [ generateCollectionPage({ name: t('pages.toolsHub.metaTitle'), description: t('pages.toolsHub.metaDescription'), url, }), generateBreadcrumbs([ { name: t('common.home'), url: origin }, { name: t('common.allTools'), url }, ]), generateItemList( TOOLS_SEO.map((tool) => ({ name: t(`tools.${tool.i18nKey}.title`), url: `${origin}/tools/${tool.slug}`, })), ), ]; return ( <>

{t('pages.toolsHub.title')}

{t('pages.toolsHub.description')}

{groupedTools.map((group) => (

{t(`pages.toolsHub.categories.${group.category}`)}

{group.items.map((tool) => (

{group.category}

{t(`tools.${tool.i18nKey}.title`)}

{t(`tools.${tool.i18nKey}.shortDesc`)}

))}
))}
); }