import { useState } from "react"; import { Card, CardContent } from "@/components/ui/card"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { useNavigate } from "react-router-dom"; import { useToast } from "@/hooks/use-toast"; import { useCreateCourse } from "@/hooks/queries"; const steps = ["Basic Info", "Schedule", "Review"]; export default function CourseBuilder() { const [step, setStep] = useState(0); const navigate = useNavigate(); const { toast } = useToast(); const createMut = useCreateCourse(); const [form, setForm] = useState({ title: "", code: "", description: "", level: "Beginner" as "Beginner" | "Intermediate" | "Advanced", start_date: "", end_date: "", max_capacity: "", }); function handlePublish() { createMut.mutate( { title: form.title, code: form.code, description: form.description, level: form.level, instructor_id: 0, max_capacity: Number(form.max_capacity) || 30, start_date: form.start_date, end_date: form.end_date, }, { onSuccess: () => { toast({ title: "Course Created", description: "Your new course has been saved." }); navigate("/admin/courses"); }, onError: (err: Error) => toast({ title: "Error", description: err.message, variant: "destructive" }), }, ); } return (

Course Builder

Create a new course in {steps.length} steps.

{steps.map((s, i) => (
))}

Step {step + 1}: {steps[step]}

{step === 0 && ( <>
setForm(f => ({ ...f, title: e.target.value }))} placeholder="e.g. IELTS Academic Writing" />
setForm(f => ({ ...f, code: e.target.value }))} placeholder="e.g. IELTS-W101" />