import { Suspense } from "react" import { BookOpen } from "lucide-react" import { TextbookCard } from "@/modules/textbooks/components/textbook-card"; import { TextbookFormDialog } from "@/modules/textbooks/components/textbook-form-dialog"; import { getTextbooks } from "@/modules/textbooks/data-access"; import { TextbookFilters } from "@/modules/textbooks/components/textbook-filters" import { EmptyState } from "@/shared/components/ui/empty-state" export const dynamic = "force-dynamic" type SearchParams = { [key: string]: string | string[] | undefined } const getParam = (params: SearchParams, key: string) => { const v = params[key] return Array.isArray(v) ? v[0] : v } async function TextbooksResults({ searchParams }: { searchParams: Promise }) { const params = await searchParams const q = getParam(params, "q") || undefined const subject = getParam(params, "subject") const grade = getParam(params, "grade") const textbooks = await getTextbooks(q, subject || undefined, grade || undefined) const hasFilters = Boolean(q || (subject && subject !== "all") || (grade && grade !== "all")) if (textbooks.length === 0) { return ( ) } return (
{textbooks.map((textbook) => ( ))}
) } export default async function TextbooksPage({ searchParams }: { searchParams: Promise }) { return (
{/* Page Header */}

Textbooks

Manage your digital curriculum resources and chapters.

}> }>
); }