news widget

This commit is contained in:
alma 2025-05-04 16:40:32 +02:00
parent 8d416c78d8
commit f43388c377

View File

@ -5,13 +5,12 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { RefreshCw, Telescope } from "lucide-react"; import { RefreshCw, Telescope } from "lucide-react";
import { useSession } from "next-auth/react"; import { useSession } from "next-auth/react";
import { formatDistance } from 'date-fns';
import { fr } from 'date-fns/locale';
interface NewsItem { interface NewsItem {
id: number; id: number;
title: string; title: string;
date: string; displayDate: string;
timestamp: string;
source: string; source: string;
description: string | null; description: string | null;
category: string | null; category: string | null;
@ -36,6 +35,14 @@ export function News() {
} }
const data = await response.json(); const data = await response.json();
// Debug log the date values
console.log('News data dates:', data.map((item: NewsItem) => ({
id: item.id,
displayDate: item.displayDate,
timestamp: item.timestamp
})));
setNews(data); setNews(data);
setError(null); setError(null);
} catch (err) { } catch (err) {
@ -53,25 +60,6 @@ export function News() {
} }
}, [status]); }, [status]);
const formatDate = (dateString: string) => {
try {
const date = new Date(dateString);
// Check if date is valid before using formatDistance
if (isNaN(date.getTime())) {
return dateString; // Return original string if date is invalid
}
return formatDistance(date, new Date(), {
addSuffix: true,
locale: fr
});
} catch (err) {
console.error('Error formatting date:', err);
return dateString;
}
};
if (status === 'loading' || loading) { if (status === 'loading' || loading) {
return ( return (
<Card className="transition-transform duration-500 ease-in-out transform hover:scale-105 bg-white/95 backdrop-blur-sm border-0 shadow-lg"> <Card className="transition-transform duration-500 ease-in-out transform hover:scale-105 bg-white/95 backdrop-blur-sm border-0 shadow-lg">
@ -123,7 +111,7 @@ export function News() {
> >
<div className="flex flex-col gap-1"> <div className="flex flex-col gap-1">
<div className="flex items-center justify-between text-xs"> <div className="flex items-center justify-between text-xs">
<span className="text-gray-500">{formatDate(item.date)}</span> <span className="text-gray-500">{item.displayDate}</span>
</div> </div>
<h3 className="text-sm font-medium text-gray-800 line-clamp-2" title={item.title}> <h3 className="text-sm font-medium text-gray-800 line-clamp-2" title={item.title}>
{item.title} {item.title}