widget news fetch 3

This commit is contained in:
Alma 2025-04-13 22:28:30 +02:00
parent 96fbc11509
commit 5453b7ef15

View File

@ -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<NewsItem[]>([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(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);