"use client"; import { useEffect, useState } from "react"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { RefreshCw } from "lucide-react"; import { useSession } from "next-auth/react"; interface NewsItem { id: string; title: string; date: string; category: string; } export function News() { const [news, setNews] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [refreshing, setRefreshing] = useState(false); const { status } = useSession(); const fetchNews = async (isRefresh = false) => { if (isRefresh) setRefreshing(true); setLoading(true); // Placeholder data - replace with actual API call const mockNews = [ { id: '1', title: 'New Project Management Features Released', date: '2024-03-20', category: 'Product Update' }, { id: '2', title: 'Team Meeting Schedule Changes', date: '2024-03-19', category: 'Announcement' }, { id: '3', title: 'Upcoming Training Sessions', date: '2024-03-18', category: 'Training' }, ]; try { // Simulate API call await new Promise(resolve => setTimeout(resolve, 1000)); setNews(mockNews); setError(null); } catch (err) { setError('Failed to fetch news'); console.error('Error fetching news:', err); } finally { setLoading(false); setRefreshing(false); } }; useEffect(() => { if (status === 'authenticated') { fetchNews(); } }, [status]); if (status === 'loading' || loading) { return ( News

Loading...

); } return ( News {error ? (

{error}

) : (
{news.length === 0 ? (

No news available

) : ( news.map((item) => (
{item.date} {item.category}

{item.title}

)) )}
)}
); }