import React from 'react'; import { makeStyles, Theme, createStyles, withStyles } from '@material-ui/core/styles'; import clsx from 'clsx'; import Stepper from '@material-ui/core/Stepper'; import Step from '@material-ui/core/Step'; import StepLabel from '@material-ui/core/StepLabel'; import Check from '@material-ui/icons/Check'; import SettingsIcon from '@material-ui/icons/Settings'; import GroupAddIcon from '@material-ui/icons/GroupAdd'; import VideoLabelIcon from '@material-ui/icons/VideoLabel'; import StepConnector from '@material-ui/core/StepConnector'; import Button from '@material-ui/core/Button'; import Typography from '@material-ui/core/Typography'; import { StepIconProps } from '@material-ui/core/StepIcon'; const QontoConnector = withStyles({ alternativeLabel: { top: 10, left: 'calc(-50% + 16px)', right: 'calc(50% + 16px)', }, active: { '& $line': { borderColor: '#784af4', }, }, completed: { '& $line': { borderColor: '#784af4', }, }, line: { borderColor: '#eaeaf0', borderTopWidth: 3, borderRadius: 1, }, })(StepConnector); const useQontoStepIconStyles = makeStyles({ root: { color: '#eaeaf0', display: 'flex', height: 22, alignItems: 'center', }, active: { color: '#784af4', }, circle: { width: 8, height: 8, borderRadius: '50%', backgroundColor: 'currentColor', }, completed: { color: '#784af4', zIndex: 1, fontSize: 18, }, }); function QontoStepIcon(props: StepIconProps) { const classes = useQontoStepIconStyles(); const { active, completed } = props; return (
{completed ? :
}
); } const ColorlibConnector = withStyles({ alternativeLabel: { top: 22, }, active: { '& $line': { backgroundImage: 'linear-gradient( 95deg,rgb(242,113,33) 0%,rgb(233,64,87) 50%,rgb(138,35,135) 100%)', }, }, completed: { '& $line': { backgroundImage: 'linear-gradient( 95deg,rgb(242,113,33) 0%,rgb(233,64,87) 50%,rgb(138,35,135) 100%)', }, }, line: { height: 3, border: 0, backgroundColor: '#eaeaf0', borderRadius: 1, }, })(StepConnector); const useColorlibStepIconStyles = makeStyles({ root: { backgroundColor: '#ccc', zIndex: 1, color: '#fff', width: 50, height: 50, display: 'flex', borderRadius: '50%', justifyContent: 'center', alignItems: 'center', }, active: { backgroundImage: 'linear-gradient( 136deg, rgb(242,113,33) 0%, rgb(233,64,87) 50%, rgb(138,35,135) 100%)', boxShadow: '0 4px 10px 0 rgba(0,0,0,.25)', }, completed: { backgroundImage: 'linear-gradient( 136deg, rgb(242,113,33) 0%, rgb(233,64,87) 50%, rgb(138,35,135) 100%)', }, }); function ColorlibStepIcon(props: StepIconProps) { const classes = useColorlibStepIconStyles(); const { active, completed } = props; const icons: { [index: string]: React.ReactElement } = { 1: , 2: , 3: , }; return (
{icons[String(props.icon)]}
); } const useStyles = makeStyles((theme: Theme) => createStyles({ root: { width: '100%', }, button: { marginRight: theme.spacing(1), }, instructions: { marginTop: theme.spacing(1), marginBottom: theme.spacing(1), }, }), ); function getSteps() { return ['Select campaign settings', 'Create an ad group', 'Create an ad']; } function getStepContent(step: number) { switch (step) { case 0: return 'Select campaign settings...'; case 1: return 'What is an ad group anyways?'; case 2: return 'This is the bit I really care about!'; default: return 'Unknown step'; } } export default function CustomizedSteppers() { const classes = useStyles(); const [activeStep, setActiveStep] = React.useState(1); const steps = getSteps(); const handleNext = () => { setActiveStep((prevActiveStep) => prevActiveStep + 1); }; const handleBack = () => { setActiveStep((prevActiveStep) => prevActiveStep - 1); }; const handleReset = () => { setActiveStep(0); }; return (
{steps.map((label) => ( {label} ))} }> {steps.map((label) => ( {label} ))} }> {steps.map((label) => ( {label} ))}
{activeStep === steps.length ? (
All steps completed - you're finished
) : (
{getStepContent(activeStep)}
)}
); }