From 5453b7ef15cde68a1e7cd0ff0534c0acc25d46b1 Mon Sep 17 00:00:00 2001 From: Alma Date: Sun, 13 Apr 2025 22:28:30 +0200 Subject: [PATCH] widget news fetch 3 --- components/news.tsx | 63 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/components/news.tsx b/components/news.tsx index 3561c460..164ae4f0 100644 --- a/components/news.tsx +++ b/components/news.tsx @@ -24,7 +24,48 @@ interface NewsItem { symbol: string | null; } +// Mock data for testing - remove this in production +const MOCK_NEWS = [ + { + id: 1, + title: "New Project Management Features Released", + url: "#", + date: "2024-03-20", + source: "Internal", + description: "New features added to improve project management workflow", + category: "Update", + sentiment: { score: null, label: null }, + symbols: null, + symbol: null + }, + { + id: 2, + title: "Team Meeting Schedule Changes", + url: "#", + date: "2024-03-19", + source: "Internal", + description: "Updates to the team meeting schedule", + category: "Announcement", + sentiment: { score: null, label: null }, + symbols: null, + symbol: null + }, + { + id: 3, + title: "Upcoming Training Sessions", + url: "#", + date: "2024-03-18", + source: "Internal", + description: "Schedule for upcoming training sessions", + category: "Training", + sentiment: { score: null, label: null }, + symbols: null, + symbol: null + } +]; + export function News() { + console.log('News component mounted'); const [news, setNews] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); @@ -32,28 +73,46 @@ export function News() { const [dbStatus, setDbStatus] = useState<'connecting' | 'connected' | 'error'>('connecting'); const fetchNews = async (isRefresh = false) => { + console.log('Fetching news...'); if (isRefresh) setRefreshing(true); setLoading(true); setDbStatus('connecting'); try { + console.log('Making API request to /api/news'); const response = await fetch('/api/news'); + console.log('API response status:', response.status); + if (!response.ok) { + console.log('API request failed'); throw new Error('Failed to fetch news'); } + const data = await response.json(); + console.log('API response data:', data); if (data.error) { + console.log('API returned error:', data.error); throw new Error(data.error); } - setNews(data.news); + // If no news items returned, use mock data for testing + if (!data.news || data.news.length === 0) { + console.log('No news items returned, using mock data'); + setNews(MOCK_NEWS); + } else { + console.log('Setting news items from API'); + setNews(data.news); + } + setError(null); setDbStatus('connected'); } catch (err) { + console.error('Error details:', err); setError('Failed to load news. Please try again later.'); setDbStatus('error'); - console.error('Error fetching news:', err); + console.log('Using mock data due to error'); + setNews(MOCK_NEWS); } finally { setLoading(false); setRefreshing(false);