import React from 'react'; import PropTypes from 'prop-types'; import { isFunction } from 'lodash-es'; import classnames from 'classnames'; import { stepsClasses as css } from '@douyinfe/semi-foundation/steps/constants'; import { IconChevronRight } from '@douyinfe/semi-icons'; export interface NavStepProps { title?: React.ReactNode; className?: string; style?: React.CSSProperties; index?: number; active?: boolean; total?: number; prefixCls?: string; onChange?: () => void; onClick?: React.MouseEventHandler; } const NavStep = (props: NavStepProps) => { const { prefixCls, className, title, style, active, index, total, onClick, onChange, ...restProps } = props; const classString = classnames(prefixCls, className, { [`${prefixCls}-active`]: active }); const handleClick = (e: React.MouseEvent) => { if (isFunction(onClick)) { onClick(e); } onChange(); }; return (
handleClick(e)}>
{title}
{index !== total - 1 && (
)}
); }; NavStep.propTypes = { prefixCls: PropTypes.string, title: PropTypes.node, className: PropTypes.string, style: PropTypes.object, onClick: PropTypes.func, active: PropTypes.bool, }; NavStep.defaultProps = { prefixCls: css.ITEM, active: false, className: '', }; export default NavStep;