import { JSX, useState } from 'react' import stylesInitial from './styles.module.css' import stylesSimple from './simpleStyles.module.css' import stylesLine from './stylesLine.module.css' interface StepperProps { mode?: 'initial' | 'simple' | 'line' active: number steps: string[] | JSX.Element[] style?: React.CSSProperties onOver?: boolean onClick: (step: number) => void } export const Stepper: React.FC = ({ mode = 'initial', active, steps = [''], style, onOver = false, onClick }) => { const styles = { initial: stylesInitial, simple: stylesSimple, line: stylesLine }[mode] const stepCount = steps.length // <-- nuevo estado para hover const [hoverIndex, setHoverIndex] = useState(null) // calcula left en base al hover (si hay) o al active const currentIndex = hoverIndex ?? active return (
{steps.map((title, index) => (
onClick(index)} onMouseEnter={() => onOver && setHoverIndex(index)} /* <-- */ onMouseLeave={() => onOver && setHoverIndex(null)} /* <-- */ > {title}
))}
) }