import { useState } from "react"; import { Link, useNavigate, useParams, useSearchParams, } from "react-router-dom"; import { ArrowLeft } from "lucide-react"; import { Button } from "../../components/ui/button"; import { Stepper } from "../../components/ui/stepper"; import successIcon from "../../assets/success.svg"; import { ContextStep } from "./components/practice-steps/ContextStep"; import { ScenarioStep } from "./components/practice-steps/ScenarioStep"; import { PersonaStep } from "./components/practice-steps/PersonaStep"; import { QuestionsStep } from "./components/practice-steps/QuestionsStep"; import { ReviewStep } from "./components/practice-steps/ReviewStep"; export function AddPracticeFlow() { const navigate = useNavigate(); const { level } = useParams<{ level: string }>(); const [searchParams] = useSearchParams(); const backTo = searchParams.get("backTo"); const courseId = searchParams.get("courseId"); const moduleId = searchParams.get("moduleId"); const isModuleContext = backTo === "module"; const isCourseContext = backTo === "modules"; const backLabel = backTo === "module" ? "Back to Module" : backTo === "modules" ? "Back to Modules" : "Back to Courses"; const backPath = backTo === "module" && courseId && moduleId ? `/new-content/learn-english/${level}/courses/${courseId}/modules/${moduleId}` : backTo === "modules" && courseId ? `/new-content/learn-english/${level}/courses/${courseId}` : `/new-content/learn-english/${level}/courses`; const flowSteps = isModuleContext ? ["Context", "Persona", "Questions", "Review"] : ["Context", "Scenario", "Persona", "Questions", "Review"]; const [currentStep, setCurrentStep] = useState(1); const [selectedPersona, setSelectedPersona] = useState( "dawit", ); const [isPublished, setIsPublished] = useState(false); const [formData, setFormData] = useState({ program: "Intermediate", course: "A2", title: "", description: "", selectedVideo: "", tips: "Focus on using the present perfect continuous tense to describe an action that started in the past and continues now.", questions: [ { id: "q1", text: "How long have you been studying English?", type: "Speaking", voicePrompt: "prompt_q1_en.mp3", sampleAnswer: "prompt_q1_en.mp3", }, ], }); const nextStep = () => setCurrentStep((prev) => Math.min(prev + 1, flowSteps.length)); const prevStep = () => setCurrentStep((prev) => Math.max(prev - 1, 1)); if (isPublished) { return (
Success

Practice Published Successfully!

Your speaking practice is now active and available inside the module.

); } // Helper to map currentStep to the actual component for the module flow const renderStep = () => { if (!isModuleContext) { switch (currentStep) { case 1: return ( ); case 2: return ( ); case 3: return ( ); case 4: return ( ); case 5: return ( ); default: return null; } } else { // Module Context Flow (Skips Scenario) switch (currentStep) { case 1: return ( ); case 2: return ( ); case 3: return ( ); case 4: return ( ); default: return null; } } }; return (
{/* Header */}
{backLabel}

Add New Practice

Create a new immersive practice session for students.

{renderStep()}
); }