import { Breadcrumb } from '@thedaviddias/design-system/breadcrumb'
import { getBaseUrl } from '@thedaviddias/utils/get-base-url'
import { Users } from 'lucide-react'
import { Suspense } from 'react'
import { Card } from '@/components/ui/card'
import { getCachedMembers } from '@/lib/member-server-utils'
import { generateBaseMetadata } from '@/lib/seo/seo-config'
import { MembersList } from './members-list'
import { MembersSearch } from './members-search'
// Force dynamic rendering since we use searchParams
export const dynamic = 'force-dynamic'
/**
* Generate metadata for the members page
*
* @returns Metadata object for Next.js
*/
export async function generateMetadata() {
const allMembers = await getCachedMembers()
const totalCount = allMembers.length
return generateBaseMetadata({
title: `Members (${totalCount})`,
description: `Browse ${totalCount} members of the llms.txt Hub community. Connect with developers, creators, and contributors building AI-ready documentation.`,
path: '/members',
keywords: [
'llms.txt community',
'AI documentation contributors',
'developer community',
'llms.txt members'
]
})
}
/**
* Empty state component for when no members are found
*/
function EmptyState({ searchQuery }: { searchQuery: string }) {
return (
{searchQuery
? `No members found matching "${searchQuery}". Try a different search term.`
: 'Be the first to join the community!'}
No members found
{searchQuery ? `${initialMembers.length} of ${totalCount} members` : `${totalCount} members and growing`}