'use client'; import { useEffect, useState } from 'react'; import { useRouter, useParams } from 'next/navigation'; import { motion } from 'framer-motion'; import { ArrowLeft, Star, Zap, CircleCheck as CheckCircle, Trophy } from 'lucide-react'; import * as Icons from 'lucide-react'; import useStore from '@/lib/store'; import CosmicCard from '@/components/ui/cosmic-card'; import MissionCompleteDialog from '@/components/ui/mission-complete-dialog'; import { toast } from 'sonner'; export default function MissionDetailPage() { const params = useParams(); const router = useRouter(); const { user, missions, completeMission } = useStore(); const [isCompleting, setIsCompleting] = useState(false); const [showReward, setShowReward] = useState(false); const [showDialog, setShowDialog] = useState(false); const mission = missions.find((m) => m.id === parseInt(params.id)); useEffect(() => { if (!user) { router.push('/login'); } }, [user, router]); if (!user || !mission) { return null; } const Icon = Icons[mission.icon] || Icons.Target; const isCompleted = mission.status === 'completed'; const handleCompleteMission = async () => { if (isCompleted) return; setIsCompleting(true); setTimeout(() => { completeMission(mission.id); setIsCompleting(false); setShowReward(true); setShowDialog(true); setTimeout(() => { setShowDialog(false); setTimeout(() => { router.push('/missions'); }, 500); }, 4000); }, 1500); }; return (
{mission.description}
Опыт
+{mission.experienceReward}
Мана
+{mission.manaReward}
Прокачиваемые навыки: