MCPcopy Index your code
hub / github.com/plotly/dash / Slider

Function Slider

components/dash-core-components/src/components/Slider.tsx:17–89  ·  view source on GitHub ↗
({
    updatemode = 'mouseup',
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    persisted_props = [PersistedProps.value],
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    persistence_type = PersistenceTypes.local,
    // eslint-disable-next-line no-magic-numbers
    verticalHeight = 400,
    step = undefined,
    allow_direct_input = true,
    setProps,
    value,
    drag_value,
    ...props
}: SliderProps)

Source from the content-addressed store, hash-verified

15 * A slider component with a single handle.
16 */
17export default function Slider({
18 updatemode = 'mouseup',
19 // eslint-disable-next-line @typescript-eslint/no-unused-vars
20 persisted_props = [PersistedProps.value],
21 // eslint-disable-next-line @typescript-eslint/no-unused-vars
22 persistence_type = PersistenceTypes.local,
23 // eslint-disable-next-line no-magic-numbers
24 verticalHeight = 400,
25 step = undefined,
26 allow_direct_input = true,
27 setProps,
28 value,
29 drag_value,
30 ...props
31}: SliderProps) {
32 // This is actually a wrapper around a RangeSlider.
33 // We'll modify key `Slider` props to be compatible with a Range Slider.
34
35 // Some considerations for the default value of `step`:
36 // If the range consists of integers, default to a value of `1`
37 // Otherwise, leave it undefined
38 if (
39 typeof step === 'undefined' &&
40 Number.isInteger(props.min) &&
41 Number.isInteger(props.max)
42 ) {
43 step = 1;
44 }
45
46 const mappedValue: RangeSliderProps['value'] = useMemo(() => {
47 return typeof value === 'number' ? [value] : value;
48 }, [value]);
49
50 const mappedDragValue: RangeSliderProps['drag_value'] = useMemo(() => {
51 return typeof drag_value === 'number' ? [drag_value] : drag_value;
52 }, [drag_value]);
53
54 const mappedSetProps: RangeSliderProps['setProps'] = useCallback(
55 newProps => {
56 const {value, drag_value} = newProps;
57 const mappedProps: Partial<SliderProps> = omit(
58 ['value', 'drag_value', 'setProps'],
59 newProps
60 );
61 if ('value' in newProps) {
62 mappedProps.value = value ? value[0] : value;
63 }
64 if ('drag_value' in newProps) {
65 mappedProps.drag_value = drag_value
66 ? drag_value[0]
67 : drag_value;
68 }
69
70 setProps(mappedProps);
71 },
72 [setProps]
73 );
74

Callers

nothing calls this directly

Calls 4

useMemoFunction · 0.90
useCallbackFunction · 0.90
omitFunction · 0.50
setPropsFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…