import { Suspense } from "react" import { Plus } from "lucide-react" import { Button } from "@/shared/components/ui/button" import { QuestionDataTable } from "@/modules/questions/components/question-data-table" import { columns } from "@/modules/questions/components/question-columns" import { QuestionFilters } from "@/modules/questions/components/question-filters" import { CreateQuestionButton } from "@/modules/questions/components/create-question-button" import { MOCK_QUESTIONS } from "@/modules/questions/mock-data" import { Question } from "@/modules/questions/types" // Simulate backend delay and filtering async function getQuestions(searchParams: { [key: string]: string | string[] | undefined }) { // In a real app, you would call your DB or API here // await new Promise((resolve) => setTimeout(resolve, 500)) // Simulate network latency let filtered = [...MOCK_QUESTIONS] const q = searchParams.q as string const type = searchParams.type as string const difficulty = searchParams.difficulty as string if (q) { filtered = filtered.filter((item) => (typeof item.content === 'string' && item.content.toLowerCase().includes(q.toLowerCase())) || (typeof item.content === 'object' && JSON.stringify(item.content).toLowerCase().includes(q.toLowerCase())) ) } if (type && type !== "all") { filtered = filtered.filter((item) => item.type === type) } if (difficulty && difficulty !== "all") { filtered = filtered.filter((item) => item.difficulty === parseInt(difficulty)) } return filtered } export default async function QuestionBankPage({ searchParams, }: { searchParams: Promise<{ [key: string]: string | string[] | undefined }> }) { const params = await searchParams const questions = await getQuestions(params) return (
Manage your question repository for exams and assignments.