import { headers as getHeaders } from 'next/headers.js' import { getPayload, PaginatedDocs } from 'payload' import config from '@/payload.config' import React from 'react' import UserFeed from '@/components/Feed/UserFeed' import { Book, HoldRequest, Repository } from '@/payload-types' import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' import { TextShimmer } from '@/components/ui/text-shimmer' import { LoginForm } from '@/components/login-form' import SearchBooks from '@/components/Search/SearchBooks' import Manage from '@/components/Manage/Manage' export default async function HomePage() { const headers = await getHeaders() const payloadConfig = await config const payload = await getPayload({ config: payloadConfig }) const { user } = await payload.auth({ headers }) const initBrowseBooks = (await payload.find({ collection: 'books', depth: 10, limit: 25, overrideAccess: false, select: { title: true, authors: true, publication: true, lcc: true, genre: true, isbn: true, copies: true, }, })) as PaginatedDocs let userRepos: PaginatedDocs | null = null if (user?.id) userRepos = (await payload.find({ collection: 'repositories', depth: 3, limit: 10, select: { name: true, abbreviation: true, image: true, description: true, dateOpenToPublic: true, holdRequests: true, }, where: { 'owner.id': { equals: user.id, }, }, joins: { holdRequests: { limit: 100, }, }, })) as PaginatedDocs return (
) }