@@ -6,17 +6,21 @@ import SliderContext from '../context';
66export interface DotProps {
77 prefixCls : string ;
88 value : number ;
9+ marksValue : number [ ] ;
910 style ?: React . CSSProperties | ( ( dotValue : number ) => React . CSSProperties ) ;
1011 activeStyle ?: React . CSSProperties | ( ( dotValue : number ) => React . CSSProperties ) ;
1112}
1213
1314export default function Dot ( props : DotProps ) {
14- const { prefixCls, value, style, activeStyle } = props ;
15- const { min, max, direction, included, includedStart, includedEnd } =
16- React . useContext ( SliderContext ) ;
15+ const { prefixCls, marksValue, value, style, activeStyle } = props ;
16+ const { min, max, direction, included, includedStart, includedEnd } = React . useContext (
17+ SliderContext ,
18+ ) ;
1719
1820 const dotClassName = `${ prefixCls } -dot` ;
21+ const marksDotClassName = `${ prefixCls } -marks-dot` ;
1922 const active = included && includedStart <= value && value <= includedEnd ;
23+ const marksDot = marksValue . indexOf ( value ) >= 0 ;
2024
2125 // ============================ Offset ============================
2226 let mergedStyle = {
@@ -33,9 +37,15 @@ export default function Dot(props: DotProps) {
3337
3438 return (
3539 < span
36- className = { classNames ( dotClassName , {
37- [ `${ dotClassName } -active` ] : active ,
38- } ) }
40+ className = { classNames (
41+ dotClassName ,
42+ {
43+ [ `${ dotClassName } -active` ] : active ,
44+ } ,
45+ {
46+ [ marksDotClassName ] : marksDot ,
47+ } ,
48+ ) }
3949 style = { mergedStyle }
4050 />
4151 ) ;
0 commit comments