import React, { useState, useEffect } from 'react'; import { ResidentReport } from '../../types'; import { apiClient } from '../../services/apiClient'; import { ResidentReportView } from './ResidentReportView'; import { ArrowLeft, Loader2, AlertCircle } from 'lucide-react'; interface ResidentReportPageProps { reportId: string | number; onBack: () => void; } export const ResidentReportPage: React.FC = ({ reportId, onBack }) => { const [report, setReport] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { loadReport(); }, [reportId]); const loadReport = async () => { try { setLoading(true); setError(null); const data = await apiClient.get(`/pr/reports/${reportId}`); setReport(data); } catch (err: any) { console.error('Error loading report:', err); setError(err.message || 'Не удалось загрузить отчет'); } finally { setLoading(false); } }; if (loading) { return (
); } if (error) { return (

Ошибка: {error}

); } if (!report) { return (

Отчет не найден

); } const period = report.periodStart && report.periodEnd ? `${new Date(report.periodStart).toLocaleDateString('ru-RU')} - ${new Date(report.periodEnd).toLocaleDateString('ru-RU')}` : report.month; return (
{/* Заголовок и навигация */}

Отчет собственникам МКД

{report.address || `Отчет #${report.id}`} • {period}

{report.status === 'draft' && ( Черновик )} {report.status === 'published' && ( Опубликован )}
{/* Контент отчета */} {report.content ? ( ) : (

Контент отчета не загружен

)}
); };