/* Imports */ import { Slider, Rail, Handles, Tracks, Ticks } from "react-compound-slider"; import React, { useState } from 'react'; // https://sghall.github.io/react-compound-slider/#/getting-started/tutorial /* Definitions */ const sliderStyle = { // Give the slider some width position: 'relative', width: '40em', height: 40, border: '5em', } const railStyle = { position: 'absolute', width: '100%', height: 15, marginTop: 30, borderRadius: 5, backgroundColor: 'lightgrey', } /* Support functions */ function Handle({ handle: { id, value, percent }, getHandleProps, displayFunction, handleWidth }) { return ( <>
{displayFunction(value)}
) } function Track({ source, target, getTrackProps }) { return (
) } /* Body */ // Two functions, essentially identical. export function SliderElement({ onChange, value, displayFunction }) { return ( {({ getRailProps }) => (
)} {({ handles, getHandleProps }) => (
{handles.map(handle => ( ))}
)}
{({ tracks, getTrackProps }) => (
{tracks.map(({ id, source, target }) => ( ))}
)}
) }