/* 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: "11em", height: 40, border: "5em", }; const railStyle = { position: "absolute", width: "100%", height: 5, 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 }) => ( ))}
)}
); }