import * as React from "react"; import Box from "@mui/material/Box"; import Stepper from "@mui/material/Stepper"; import Step from "@mui/material/Step"; import StepLabel from "@mui/material/StepLabel"; import Button from "@mui/material/Button"; import Typography from "@mui/material/Typography"; import Navbar from "../components/Navbar/Navbar"; import Create from "../pages/createQuize/Create"; import { Container, useTheme } from "@mui/material"; import Projects from "../pages/createQuize/Projects"; import MyQuizzes from "../components/MyQuizzes"; import SidebarCreateQuize from "./sidebarCreateQuize"; import CreateCard from "./CreateCard"; import StartPage from "./StartPage"; const steps = ["Step 34", "Step 2", "Step 3"]; export default function HorizontalLinearStepper() { const [activeStep, setActiveStep] = React.useState(0); const [skipped, setSkipped] = React.useState(new Set()); const theme = useTheme(); const isStepOptional = (step: number) => { return step === 1; }; const isStepSkipped = (step: number) => { return skipped.has(step); }; const handleNext = () => { let newSkipped = skipped; if (isStepSkipped(activeStep)) { newSkipped = new Set(newSkipped.values()); newSkipped.delete(activeStep); } setActiveStep((prevActiveStep) => prevActiveStep + 1); setSkipped(newSkipped); }; const handleBack = () => { setActiveStep((prevActiveStep) => prevActiveStep - 1); }; const handleSkip = () => { if (!isStepOptional(activeStep)) { // You probably want to guard against something like this, // it should never occur unless someone's actively trying to break something. throw new Error("You can't skip a step that isn't optional."); } setActiveStep((prevActiveStep) => prevActiveStep + 1); setSkipped((prevSkipped) => { const newSkipped = new Set(prevSkipped.values()); newSkipped.add(activeStep); return newSkipped; }); }; const handleReset = () => { setActiveStep(0); }; let component = null switch (activeStep) { case 0: component = <> break; case 1: component = break; case 2: component = break; default: break; } return (<> {component} {activeStep === steps.length ? ( All steps completed - you're finished ) : ( //Тут отображаемые компоненты {isStepOptional(activeStep) && ( )} )} {steps.map((label, index) => { const stepProps: { completed?: boolean } = {}; const labelProps: { optional?: React.ReactNode; } = {}; if (isStepOptional(index)) { labelProps.optional = ( Optional ); } if (isStepSkipped(index)) { stepProps.completed = false; } return ( {label} ); })} ); }