'use client'; import { Search } from 'lucide-react'; import { useEffect, useState } from 'react'; import Link from 'next/link'; import { toast } from 'sonner'; import { getApiUrl, get } from '@/lib/api'; interface Discover { title: string; content: string; url: string; thumbnail: string; } const Page = () => { const [discover, setDiscover] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { const fetchData = async () => { try { const data = await get<{ blogs: Discover[] }>(getApiUrl('/discover')); setDiscover(data.blogs.filter(blog => blog.thumbnail)); } catch (error) { console.error('Unable to fetch discovers:', error); toast.error('Unable to fetch discovers'); } finally { setLoading(false); } }; fetchData(); }, []); return loading ? (
) : ( <>

Discover


{discover && discover?.map((item, i) => ( { try { if (!item.thumbnail) return '/placeholder.jpg'; const url = new URL(item.thumbnail); return url.origin + url.pathname + (url.searchParams.get('id') ? `?id=${url.searchParams.get('id')}` : ''); } catch (e) { return item.thumbnail || '/placeholder.jpg'; } })() } alt={item.title} />
{item.title.slice(0, 100)}...

{item.content.slice(0, 100)}...

))}
); }; export default Page;