import React, { useEffect } 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'; import { highlightText } from '@/utils/text'; import axios from 'axios'; const StackerNewsIconComponent = () => ( ); const fetchStackerNews = async () => { const response = await axios.get('/api/stackernews'); return response.data.data.items.items; // Note the change here }; const StackerNewsFeed = ({ searchQuery }) => { const { data: items, isLoading, error } = useQuery({queryKey: ['stackerNews'], queryFn: fetchStackerNews}); useEffect(() => { console.log(items); }, [items]); if (isLoading) { return (
); } if (error) { console.error('Error fetching Stacker News:', error); return
Error loading data. Please try again later.
; } const header = (item) => (

{item.user.name}

} value="stackernews" className="w-fit bg-gray-600 text-[#f8f8ff] max-sidebar:mt-1" />
); const footer = (item) => (
{new Date(item.createdAt).toLocaleString()}
); const filteredItems = items.filter(item => item.title.toLowerCase().includes(searchQuery.toLowerCase()) ); return (
{filteredItems && filteredItems.length > 0 ? ( filteredItems.map(item => ( header(item)} footer={() => footer(item)} className="w-full bg-gray-700 shadow-lg hover:shadow-xl transition-shadow duration-300 mb-4" >

{highlightText(item.title, searchQuery)}

Comments: {item.comments.length} | Sats: {item.sats}

)) ) : (
No items available.
)}
); }; export default StackerNewsFeed;