|
| 1 | +import { useState } from 'react'; |
| 2 | +import { Slider, SliderOnChangeEvent } from '@patternfly/react-core'; |
| 3 | + |
| 4 | +export const SliderCustomTooltip: React.FunctionComponent = () => { |
| 5 | + const [value, setValue] = useState(50); |
| 6 | + const steps = [ |
| 7 | + { value: 0, label: '0' }, |
| 8 | + { value: 12.5, label: '1', isLabelHidden: true }, |
| 9 | + { value: 25, label: '2' }, |
| 10 | + { value: 37.5, label: '3', isLabelHidden: true }, |
| 11 | + { value: 50, label: '4' }, |
| 12 | + { value: 62.5, label: '5', isLabelHidden: true }, |
| 13 | + { value: 75, label: '6' }, |
| 14 | + { value: 87.5, label: '7', isLabelHidden: true }, |
| 15 | + { value: 100, label: '8' } |
| 16 | + ]; |
| 17 | + |
| 18 | + const displayValue = () => { |
| 19 | + const step = steps.find((step) => step.value === value); |
| 20 | + return step ? step.label : 0; |
| 21 | + }; |
| 22 | + |
| 23 | + const customTooltipContent = () => <div>Custom tooltip content for step: {displayValue()}</div>; |
| 24 | + |
| 25 | + return ( |
| 26 | + <Slider |
| 27 | + hasTooltipOverThumb |
| 28 | + tooltipContent={customTooltipContent()} |
| 29 | + value={value} |
| 30 | + onChange={(_event: SliderOnChangeEvent, value: number) => setValue(value)} |
| 31 | + customSteps={steps} |
| 32 | + /> |
| 33 | + ); |
| 34 | +}; |
0 commit comments