import { cookies } from "next/headers"; import { getFeed, getFriends, getMe, getUserProfile, Me, User, } from "@/lib/api"; import { PostThoughtForm } from "@/components/post-thought-form"; import { Button } from "@/components/ui/button"; import Link from "next/link"; import { PopularTags } from "@/components/popular-tags"; import { ThoughtThread } from "@/components/thought-thread"; import { buildThoughtThreads } from "@/lib/utils"; import { TopFriends } from "@/components/top-friends"; import { UsersCount } from "@/components/users-count"; import { Pagination, PaginationContent, PaginationItem, PaginationNext, PaginationPrevious, } from "@/components/ui/pagination"; import { redirect } from "next/navigation"; export default async function Home({ searchParams, }: { searchParams: { page?: string }; }) { const token = (await cookies()).get("auth_token")?.value ?? null; if (token) { return ; } else { return ; } } async function FeedPage({ token, searchParams, }: { token: string; searchParams: { page?: string }; }) { const page = parseInt(searchParams.page ?? "1", 10); const [feedData, me] = await Promise.all([ getFeed(token, page).catch(() => null), getMe(token).catch(() => null) as Promise, ]); if (!feedData || !me) { redirect("/login"); } const { items: allThoughts, totalPages } = feedData!; const thoughtThreads = buildThoughtThreads(allThoughts); const authors = [...new Set(allThoughts.map((t) => t.authorUsername))]; const userProfiles = await Promise.all( authors.map((username) => getUserProfile(username, token).catch(() => null)) ); const authorDetails = new Map( userProfiles .filter((u): u is User => !!u) .map((user) => [user.username, { avatarUrl: user.avatarUrl }]) ); const friends = (await getFriends(token)).users.map((user) => user.username); const shouldDisplayTopFriends = me?.topFriends && me.topFriends.length > 8; return ( Your Feed {thoughtThreads.map((thought) => ( ))} {thoughtThreads.length === 0 && ( Your feed is empty. Follow some users to see their thoughts! )} 1 ? `/?page=${page - 1}` : "#"} aria-disabled={page <= 1} /> = totalPages} /> ); } function LandingPage() { return ( <> Welcome to Thoughts Throwback to the golden age of microblogging. Login Register > ); }
Your feed is empty. Follow some users to see their thoughts!
Throwback to the golden age of microblogging.