import React from 'react'; import { Card } from 'primereact/card'; import { Avatar } from 'primereact/avatar'; import { Tag } from 'primereact/tag'; import { Button } from 'primereact/button'; import { ProgressSpinner } from 'primereact/progressspinner'; import { useQuery } from '@tanstack/react-query'; const fetchDiscordMessages = async () => { const response = await fetch('/api/discord-messages'); if (!response.ok) { throw new Error('Failed to fetch messages'); } return response.json(); }; const Feed = () => { const { data, error, isLoading } = useQuery({ queryKey: ['discordMessages'], queryFn: fetchDiscordMessages, staleTime: 60000, // 1 minute refetchInterval: 60000, // Refetch every minute }); if (isLoading) { return } if (error) { return
Failed to load messages. Please try again later.
; } // Destructure messages from data // const messages = data?.messages || []; const header = (message) => (

{message.author}

); const footer = (message) => (
{new Date(message.timestamp).toLocaleString()}
); return (
{data && data.map(message => ( header(message)} footer={() => footer(message)} className="w-full bg-gray-700 shadow-lg hover:shadow-xl transition-shadow duration-300 mb-4" >

{message.content}

))}
); }; export default Feed;