/* 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: 32.5,
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, domain }) {
let toLogDomain = (arr) => [Math.log(arr[0]) / Math.log(10), Math.log(arr[1]) / Math.log(10)]
return (
{({ getRailProps }) => (
)}
{({ handles, getHandleProps }) => (
{handles.map(handle => (
))}
)}
{({ tracks, getTrackProps }) => (
{tracks.map(({ id, source, target }) => (
))}
)}
)
}
export function SubmitSliderButton({ posList, binaryComparisons, sliderValue, reasoning, toComparePair, nextStepSlider, dontPushSubmitButtonAnyMore }) {
// This element didn't necessarily have to exist, but it made it easier for debugging purposes
let onClick = (event) => {
if(!dontPushSubmitButtonAnyMore){
//event.preventDefault();
let obj = { posList, binaryComparisons, sliderValue, reasoning, element1: toComparePair[1], element2: toComparePair[0] }
//
console.log("input@SubmitSliderButton")
console.log(obj)
if (!!Number(sliderValue) && sliderValue >= 0) {
nextStepSlider(obj)
} else if (!!Number(sliderValue) && sliderValue < 0) {
alert("Negative numbers not yet allowed")
} else {
alert("Your input is not a number")
}
}
}
return ()
}