'use client'; import { useEffect } from 'react'; import { useRouter } from 'next/navigation'; import { motion } from 'framer-motion'; import { Target, Users, CircleCheck as CheckCircle, Clock, TrendingUp, Star } from 'lucide-react'; import useStore from '@/lib/store'; import HRSidebar from '@/components/navigation/hr-sidebar'; import CosmicCard from '@/components/ui/cosmic-card'; import StatCard from '@/components/ui/stat-card'; export default function HRDashboardPage() { const router = useRouter(); const { user, missions, isHR } = useStore(); useEffect(() => { if (!user) { router.push('/login'); } else if (!isHR) { router.push('/dashboard'); } }, [user, isHR, router]); if (!user || !isHR) return null; const totalMissions = missions.length; const completedMissions = missions.filter((m) => m.status === 'completed').length; const availableMissions = missions.filter((m) => m.status === 'available').length; const completionRate = totalMissions > 0 ? Math.round((completedMissions / totalMissions) * 100) : 0; const missionsByCategory = missions.reduce((acc, mission) => { acc[mission.category] = (acc[mission.category] || 0) + 1; return acc; }, {}); return (

HR Дашборд

Управление системой геймификации

Миссии по категориям

{Object.entries(missionsByCategory).map(([category, count], index) => (
{category} {count}
))}

Быстрые действия

router.push('/hr/missions/create')} className="w-full p-4 bg-gradient-to-r from-blue-500 to-purple-600 rounded-lg font-semibold text-white hover:from-blue-600 hover:to-purple-700 transition-all text-left" whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }} > Создать новую миссию router.push('/hr/missions')} className="w-full p-4 bg-slate-800 rounded-lg font-semibold text-white hover:bg-slate-700 transition-all text-left border border-slate-700" whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }} > Управление миссиями router.push('/hr/users')} className="w-full p-4 bg-slate-800 rounded-lg font-semibold text-white hover:bg-slate-700 transition-all text-left border border-slate-700" whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }} > Просмотр пользователей

Последние завершенные миссии

{missions .filter((m) => m.status === 'completed') .slice(0, 5) .map((mission, index) => (

{mission.title}

{mission.category}

+{mission.experienceReward}
))} {missions.filter((m) => m.status === 'completed').length === 0 && (

Пока нет завершенных миссий

)}
); }