import Link from 'next/link'
import { redirect } from 'next/navigation'
import { createClient } from '@/lib/supabase/server'
import { PageHeader, PageTitle } from '@/components/ui/page-title'
import { Badge } from '@/components/ui/badge'
import { Empty, EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription } from '@/components/ui/empty'
import { ClipboardList } from 'lucide-react'
import { CopyLinkButton } from '@/components/forms/copy-link-button'
export const dynamic = 'force-dynamic'
// Member-facing list of forms a member can fill. Auth + membership are already
// enforced by the (app) layout; RLS lets a member read published forms in
// their space.
export default async function MyFormsPage() {
const supabase = await createClient()
const {
data: { user },
} = await supabase.auth.getUser()
if (!user) redirect('/login')
const { data: member } = await supabase
.from('space_members')
.select('space_id, spaces(slug)')
.eq('user_id', user.id)
.in('status', ['current', 'unverified', 'late'])
.single()
if (!member) redirect('/login')
const spaceSlug = (member.spaces as { slug?: string } | null)?.slug ?? ''
const { data: forms } = await supabase
.from('forms')
.select('id, title, description, kind, status, slug, visibility')
.eq('space_id', member.space_id)
.eq('status', 'published')
.order('created_at', { ascending: false })
const list = forms ?? []
return (
<>
{f.description}
)} {isPublic && (/f/{spaceSlug}/{f.slug}
)}