@@ -4,6 +4,7 @@ import cls from 'classnames';
44import KeyCode from '@rc-component/util/lib/KeyCode' ;
55import type { Status , StepItem , StepsProps } from './Steps' ;
66import Rail from './Rail' ;
7+ import { UnstableContext } from './UnstableContext' ;
78
89function hasContent < T > ( value : T ) {
910 return value !== undefined && value !== null ;
@@ -57,6 +58,9 @@ export default function Step(props: StepProps) {
5758
5859 const itemCls = `${ prefixCls } -item` ;
5960
61+ // ==================== Internal Context ====================
62+ const { railFollowPrevStatus } = React . useContext ( UnstableContext ) ;
63+
6064 // ========================== Data ==========================
6165 const {
6266 onClick : onItemClick ,
@@ -129,8 +133,6 @@ export default function Step(props: StepProps) {
129133 classNames . item ,
130134 ) ;
131135
132- // !hasContent(title) && !hasContent(subTitle) && `${itemCls}-header-empty`
133-
134136 const wrapperNode = (
135137 < div className = { cls ( `${ itemCls } -wrapper` , classNames . itemWrapper ) } style = { styles . itemWrapper } >
136138 < div className = { cls ( `${ itemCls } -icon` , classNames . itemIcon ) } style = { styles . itemIcon } >
@@ -154,7 +156,12 @@ export default function Step(props: StepProps) {
154156 ) }
155157
156158 { ! last && (
157- < Rail prefixCls = { itemCls } classNames = { classNames } styles = { styles } status = { nextStatus } />
159+ < Rail
160+ prefixCls = { itemCls }
161+ classNames = { classNames }
162+ styles = { styles }
163+ status = { railFollowPrevStatus ? status : nextStatus }
164+ />
158165 ) }
159166 </ div >
160167 { hasContent ( mergedContent ) && (
0 commit comments