import React, { useEffect } from 'react'; import { ProgressSpinner } from 'primereact/progressspinner'; import { useQuery } from '@tanstack/react-query'; import axios from 'axios'; import CommunityMessage from '@/components/feeds/messages/CommunityMessage'; import useWindowWidth from '@/hooks/useWindowWidth'; const StackerNewsIconComponent = () => ( ); const fetchStackerNews = async () => { const response = await axios.get('/api/stackernews'); return response.data.data.items.items; }; const StackerNewsFeed = ({ searchQuery }) => { const { data: items, isLoading, error, } = useQuery({ queryKey: ['stackerNews'], queryFn: fetchStackerNews }); const windowWidth = useWindowWidth(); if (isLoading) { return (
); } if (error) { console.error('Error fetching Stacker News:', error); return (
Error loading data. Please try again later.
); } const filteredItems = items .filter(item => searchQuery ? item.title.toLowerCase().includes(searchQuery.toLowerCase()) : true ) .sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt)); return (
{filteredItems && filteredItems.length > 0 ? ( filteredItems.map(item => ( } platformLink={`https://stacker.news/items/${item.id}`} /> )) ) : (
No items available.
)}
); }; export default StackerNewsFeed;