import React, { useEffect, useState } from 'react'; function formatDate(s) { const d = new Date(s); if (Number.isNaN(d.getTime())) return s; return d.toLocaleDateString('ru-RU', { day: 'numeric', month: 'long', year: 'numeric', hour: '2-digit', minute: '2-digit' }); } export default function News() { const [state, setState] = useState({ loading: true, items: [], error: null }); useEffect(() => { fetch('/api/news.json', { cache: 'no-store' }) .then((r) => (r.ok ? r.json() : Promise.reject(new Error(`HTTP ${r.status}`)))) .then((data) => setState({ loading: false, items: data.items || [], error: null })) .catch((e) => setState({ loading: false, items: [], error: e.message })); }, []); return (
Агрегатор новостей о Пушкино из внешних источников. Обновляется автоматически.
{state.loading &&Загружаем новости…
} {state.error && (Не удалось загрузить новости. Загляните позже.
)} {!state.loading && !state.error && state.items.length === 0 && (Пока нет новостей.
)}{item.description}
)}