'use client'; import { useState, useEffect } from 'react'; import { useTranslations } from 'next-intl'; import { motion, AnimatePresence } from 'framer-motion'; import { Database, Server, Code2, Bot, Workflow, FileCode2 } from 'lucide-react'; interface Skill { name: string; level: number; description: string; } const iconMap: Record = { 'AI & LLMs': , 'Automation': , 'Automatizacija': , 'Python': , 'TypeScript': , 'Datenbank': , 'Database': , 'Baze podataka': , 'DevOps': }; const Skills = () => { const t = useTranslations('pages.home.skills'); const [selectedSkill, setSelectedSkill] = useState(null); const [skills, setSkills] = useState([]); useEffect(() => { try { const translatedSkills = t.raw('skills') as Skill[]; if (Array.isArray(translatedSkills)) { setSkills(translatedSkills); } } catch (error) { console.error('Error loading skills:', error); setSkills([]); } }, [t]); if (skills.length === 0) { return
Loading skills...
; } return (

{t('title')}

{/* Skills Progress Bars */}
{skills.map((skill, idx) => (
{skill.name} {skill.level}%
))}
{/* Skills Icons Grid */}
{skills.map((skill, idx) => ( setSelectedSkill(skill.name)} onHoverEnd={() => setSelectedSkill(null)} role="button" > {iconMap[skill.name] || } {skill.name} {selectedSkill === skill.name && ( {skill.description}
)} ))}
); }; export default Skills;