'use client'; import { useState } from 'react'; import { apiFetch } from '../lib/api'; interface MissionSubmissionFormProps { missionId: number; token?: string; } export function MissionSubmissionForm({ missionId, token }: MissionSubmissionFormProps) { const [comment, setComment] = useState(''); const [proofUrl, setProofUrl] = useState(''); const [status, setStatus] = useState(null); const [loading, setLoading] = useState(false); async function handleSubmit(event: React.FormEvent) { event.preventDefault(); if (!token) { setStatus('Не удалось получить токен демо-пользователя.'); return; } try { setLoading(true); setStatus(null); await apiFetch(`/api/missions/${missionId}/submit`, { method: 'POST', body: JSON.stringify({ comment, proof_url: proofUrl }), authToken: token }); setStatus('Отчёт отправлен! HR проверит миссию в панели модерации.'); setComment(''); setProofUrl(''); } catch (error) { if (error instanceof Error) { setStatus(error.message); } } finally { setLoading(false); } } return (

Отправить отчёт