import { useTranslations } from 'next-intl'; type ProjectProps = { readonly description: string; readonly href?: string; readonly technologies: string[]; readonly title: string; }; export function Projects() { const t = useTranslations('Projects'); const projects: ProjectProps[] = [ { description: t('zapishis_online_bot.description'), href: 'https://t.me/zapishis_online_bot', technologies: [ 'Next.js', 'Strapi', 'PostgreSQL', 'Grammy.js', 'Tailwind CSS', 'Telegram Mini App', ], title: t('zapishis_online_bot.title'), }, { description: t('portfolio.description'), href: 'https://vchikalkin.dev', technologies: ['Next.js', 'TypeScript', 'Tailwind CSS', 'i18n', 'Dark/Light Theme'], title: t('portfolio.title'), }, { description: t('next_downloader_bot.description'), href: 'https://t.me/next_downloader_bot', technologies: ['Grammy.js', 'Redis', 'TikTok API', 'FFmpeg'], title: t('next_downloader_bot.title'), }, { description: t('eslint_config.description'), href: 'https://github.com/vchikalkin/eslint-config-awesome', technologies: ['ESLint', 'TypeScript', 'Next.js', 'React', 'Node.js'], title: t('eslint_config.title'), }, ]; return (

{t('title')}

{projects.map((project) => ( ))}
); } function Project({ description, href, technologies, title }: ProjectProps) { const content = (

{title}

{technologies.length} tech

{description}

{technologies.map((tech) => ( {tech} ))}
); return content; }