import Typography from "@material-ui/core/Typography"; import { makeStyles } from "@saleor/theme"; import classNames from "classnames"; import React from "react"; export interface Step { label: string; value: T; } const useStyles = makeStyles( theme => ({ label: { fontSize: 14, textAlign: "center" }, root: { borderBottom: `1px solid ${theme.palette.divider}`, display: "flex", justifyContent: "space-between", marginBottom: theme.spacing(3) }, tab: { flex: 1, paddingBottom: theme.spacing(), userSelect: "none" }, tabActive: { fontWeight: 600 }, tabVisited: { borderBottom: `3px solid ${theme.palette.primary.main}`, cursor: "pointer" } }), { name: "CreatorSteps" } ); export interface CreatorStepsProps { currentStep: T; steps: Array>; onStepClick: (step: T) => void; } function makeCreatorSteps() { const CreatorSteps: React.FC> = ({ currentStep, steps, onStepClick }) => { const classes = useStyles({}); return (
{steps.map((step, stepIndex) => { const visitedStep = steps.findIndex(step => step.value === currentStep) >= stepIndex; return (
onStepClick(step.value) : undefined} key={step.value} > {step.label}
); })}
); }; CreatorSteps.displayName = "CreatorSteps"; return CreatorSteps; } export default makeCreatorSteps;