'use client'; import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import { motion } from 'framer-motion'; import { Plus, Search, Filter, CreditCard as Edit, Trash2 } from 'lucide-react'; import * as Icons from 'lucide-react'; import useStore from '@/lib/store'; import HRSidebar from '@/components/navigation/hr-sidebar'; import CosmicCard from '@/components/ui/cosmic-card'; import { categories } from '@/lib/mockData'; import { toast } from 'sonner'; export default function HRMissionsPage() { const router = useRouter(); const { user, missions, isHR, deleteMission } = useStore(); const [searchQuery, setSearchQuery] = useState(''); const [selectedCategory, setSelectedCategory] = useState('Все'); useEffect(() => { if (!user) { router.push('/login'); } else if (!isHR) { router.push('/dashboard'); } }, [user, isHR, router]); if (!user || !isHR) return null; const filteredMissions = missions.filter((mission) => { const matchesSearch = mission.title.toLowerCase().includes(searchQuery.toLowerCase()); const matchesCategory = selectedCategory === 'Все' || mission.category === selectedCategory; return matchesSearch && matchesCategory; }); const handleDelete = (missionId, title) => { if (confirm(`Вы уверены, что хотите удалить миссию "${title}"?`)) { deleteMission(missionId); toast.success('Миссия удалена'); } }; return (

Управление миссиями

Создавайте и редактируйте миссии

router.push('/hr/missions/create')} className="px-6 py-3 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 flex items-center gap-2" whileHover={{ scale: 1.05 }} whileTap={{ scale: 0.95 }} > Создать миссию
setSearchQuery(e.target.value)} className="w-full pl-12 pr-4 py-3 bg-slate-800 border border-slate-700 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:border-blue-500 transition-colors" />
Категория
{categories.map((category) => ( setSelectedCategory(category)} className={`px-4 py-2 rounded-lg font-medium text-sm whitespace-nowrap transition-all ${ selectedCategory === category ? 'bg-blue-500 text-white' : 'bg-slate-800 text-slate-400 hover:bg-slate-700' }`} whileHover={{ scale: 1.05 }} whileTap={{ scale: 0.95 }} > {category} ))}
{filteredMissions.length > 0 ? ( filteredMissions.map((mission, index) => { const Icon = Icons[mission.icon] || Icons.Target; return (

{mission.title}

{mission.category} {mission.status === 'completed' ? 'Завершено' : 'Доступно'}
router.push(`/hr/missions/${mission.id}/edit`)} className="p-2 bg-slate-700 hover:bg-slate-600 rounded-lg transition-colors" whileHover={{ scale: 1.1 }} whileTap={{ scale: 0.9 }} > handleDelete(mission.id, mission.title)} className="p-2 bg-slate-700 hover:bg-red-900/50 rounded-lg transition-colors" whileHover={{ scale: 1.1 }} whileTap={{ scale: 0.9 }} >

{mission.description}

Опыт:{' '} +{mission.experienceReward}
Мана:{' '} +{mission.manaReward}
Требуемый ранг:{' '} {mission.requiredRank}
); }) ) : (

Миссии не найдены

)}
); }