import { CSSProperties, ReactNode } from 'react' import classNames from 'classnames' import { CommonComponentProps } from '../../utils/types' import { StepsStatus } from './Steps' import { Icon } from '../icon/Icon' export interface StepsStepProps extends CommonComponentProps { className?: string style?: CSSProperties children?: ReactNode | ((status: StepsStatus) => ReactNode) icon?: ReactNode | ((status: StepsStatus) => ReactNode) status?: StepsStatus lineColor?: string disabled?: boolean onClick?: () => void } const statusIconMap = { finish: 'check-circle-fill', process: 'circle', wait: 'circle', error: 'x-circle', } export function StepsStep(props: StepsStepProps) { const { className, children, icon, status = 'wait', lineColor, disabled = false, onClick, ...restProps } = props const handleClick = () => { if (!disabled) { onClick?.() } } const stepClass = classNames( 's-steps-step', `s-steps-${status}`, { 's-steps-disabled': disabled, }, className ) const lineStyle = { backgroundColor: lineColor, } return (