"use client"; import React, { useState } from "react"; import { Box, Button, Typography, Paper, Container, useTheme, useMediaQuery, } from "@mui/material"; import CheckCircleIcon from "@mui/icons-material/CheckCircle"; import CenterRegistrationForm from "./forms/register-center/RegistrationCenterForm"; import IdentityForm from "./forms/IdentityForm"; import PersonalInfoForm from "./forms/PersonalInfoForm"; import PhysicalInfoForm from "./forms/PhysicalInfoForm"; import EducationForm from "./forms/EducationForm"; import EducationSection from "./forms/EducationSection"; import JobRequestForm from "./forms/JobRequestForm"; import JobRequestSection from "./forms/JobRequestSection"; import CourseSection from "./forms/CourseSection"; import SkillsForm from "./forms/SkillsForm"; import { WorkExperienceSection } from "./forms/WorkExperienceSection"; import JobInfoForm from "./forms/JobInfoForm"; import { ReferralSection } from "./forms/ReferralForm"; import RelationsForm from "./forms/RelationForm"; // کامپوننت پیش‌فرض برای مراحلی که هنوز نساختید const PlaceholderStep = ({ step }: any) => ( محتوای مرحله {step} در حال طراحی است... ); // --- ۲. نگاشت (Mapping) مراحل به کامپوننت‌ها --- const STEP_COMPONENTS: Record> = { 1: CenterRegistrationForm, 2: IdentityForm, 3: PersonalInfoForm, 4: PhysicalInfoForm, 5: EducationSection, 6: JobRequestSection, 7: CourseSection, 8: SkillsForm, 9: WorkExperienceSection, 10: JobInfoForm, 11: ReferralSection, 12: RelationsForm, // بقیه مراحل از Placeholder استفاده می‌کنند }; const STEP_LABELS = [ "انتخاب مركز", "مشخصات هويتي", "مشخصات فردي", "مشخصات ظاهري", "مشخصات تحصيلي", "شغل درخواستي", "دوره هاي آموزشي", "مهارت ها", "سوابق كاري", "اطلاعات كاري", "معرف", "مشخصات آشنايان", ]; // --- ۳. کامپوننت اصلی استپر --- export default function MultiStepForm() { const [activeStep, setActiveStep] = useState(1); const [maxStepReached, setMaxStepReached] = useState(1); const [formData, setFormData] = useState({ name: "", address: "", isUrgent: false, }); const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down("md")); const updateFormData = (newData: Partial) => { setFormData((prev) => ({ ...prev, ...newData })); }; const handleNext = () => { if (activeStep < 12) { setActiveStep((prev) => prev + 1); if (activeStep + 1 > maxStepReached) setMaxStepReached(activeStep + 1); } }; const ActiveStepComponent = STEP_COMPONENTS[activeStep] || PlaceholderStep; return (
{/* Sidebar Navigation */} {!isMobile && (
پنل ثبت مرکز {STEP_LABELS.map((label, i) => ( i + 1 <= maxStepReached && setActiveStep(i + 1) } sx={{ display: "flex", alignItems: "center", mb: 2, cursor: i + 1 <= maxStepReached ? "pointer" : "not-allowed", opacity: i + 1 <= maxStepReached ? 1 : 0.4, color: i + 1 === activeStep ? "#2563eb" : "#64748b", transition: "0.2s", }} > {i + 1 < activeStep ? ( ) : ( i + 1 )} {label} ))}
)} {/* Main Form Area */}
مرحله {activeStep.toLocaleString("fa-IR")} از{" "} {STEP_LABELS.length.toLocaleString("fa-IR")} {STEP_LABELS[activeStep - 1]} {/* رندر شدن داینامیک کامپوننت مرحله فعلی */}
); }