|
1 | 1 | import * as React from 'react'; |
2 | 2 | import classNames from 'classnames'; |
3 | | -// import CSSMotion from 'rc-motion'; |
4 | 3 | import useMergedState from 'rc-util/lib/hooks/useMergedState'; |
5 | 4 | import { composeRef } from 'rc-util/lib/ref'; |
6 | 5 | import omit from 'rc-util/lib/omit'; |
| 6 | + |
7 | 7 | import MotionThumb from './MotionThumb'; |
8 | 8 |
|
9 | 9 | export type SegmentedValue = string | number; |
@@ -178,38 +178,41 @@ const Segmented = React.forwardRef<HTMLDivElement, SegmentedProps>( |
178 | 178 | )} |
179 | 179 | ref={mergedRef} |
180 | 180 | > |
181 | | - <MotionThumb |
182 | | - prefixCls={prefixCls} |
183 | | - value={rawValue} |
184 | | - containerRef={containerRef} |
185 | | - motionName={`${prefixCls}-${motionName}`} |
186 | | - getValueIndex={(val) => |
187 | | - segmentedOptions.findIndex((n) => n.value === val) |
188 | | - } |
189 | | - onMotionStart={() => { |
190 | | - setThumbShow(true); |
191 | | - }} |
192 | | - onMotionEnd={() => { |
193 | | - setThumbShow(false); |
194 | | - }} |
195 | | - /> |
196 | | - {segmentedOptions.map((segmentedOption) => ( |
197 | | - <InternalSegmentedOption |
198 | | - key={segmentedOption.value} |
| 181 | + <div className={`${prefixCls}-group`}> |
| 182 | + <MotionThumb |
199 | 183 | prefixCls={prefixCls} |
200 | | - className={classNames( |
201 | | - segmentedOption.className, |
202 | | - `${prefixCls}-item`, |
203 | | - { |
204 | | - [`${prefixCls}-item-selected`]: |
205 | | - segmentedOption.value === rawValue && !thumbShow, |
206 | | - }, |
207 | | - )} |
208 | | - checked={segmentedOption.value === rawValue} |
209 | | - onChange={handleChange} |
210 | | - {...segmentedOption} |
| 184 | + value={rawValue} |
| 185 | + containerRef={containerRef} |
| 186 | + motionName={`${prefixCls}-${motionName}`} |
| 187 | + getValueIndex={(val) => |
| 188 | + segmentedOptions.findIndex((n) => n.value === val) |
| 189 | + } |
| 190 | + onMotionStart={() => { |
| 191 | + setThumbShow(true); |
| 192 | + }} |
| 193 | + onMotionEnd={() => { |
| 194 | + setThumbShow(false); |
| 195 | + }} |
211 | 196 | /> |
212 | | - ))} |
| 197 | + {segmentedOptions.map((segmentedOption) => ( |
| 198 | + <InternalSegmentedOption |
| 199 | + key={segmentedOption.value} |
| 200 | + prefixCls={prefixCls} |
| 201 | + className={classNames( |
| 202 | + segmentedOption.className, |
| 203 | + `${prefixCls}-item`, |
| 204 | + { |
| 205 | + [`${prefixCls}-item-selected`]: |
| 206 | + segmentedOption.value === rawValue && !thumbShow, |
| 207 | + }, |
| 208 | + )} |
| 209 | + checked={segmentedOption.value === rawValue} |
| 210 | + onChange={handleChange} |
| 211 | + {...segmentedOption} |
| 212 | + disabled={!!disabled || !!segmentedOption.disabled} |
| 213 | + /> |
| 214 | + ))} |
| 215 | + </div> |
213 | 216 | </div> |
214 | 217 | ); |
215 | 218 | }, |
|
0 commit comments