diff options
Diffstat (limited to 'src/Slider.tsx')
| -rw-r--r-- | src/Slider.tsx | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/Slider.tsx b/src/Slider.tsx new file mode 100644 index 0000000..50223fc --- /dev/null +++ b/src/Slider.tsx @@ -0,0 +1,45 @@ +import React from "react"; +import RcSlider, { SliderProps, SliderRef } from 'rc-slider/lib/Slider'; +import { PLAYBACK_SLOTS } from "./config"; + +// use workaround from: https://github.com/react-component/slider/issues/835#issuecomment-1201805736 +const CustomSlider = RcSlider as React.ForwardRefExoticComponent<SliderProps<number> & React.RefAttributes<SliderRef>>; + +interface GeshemSliderProps { + playback?: string, + slider: number, + setSlider: React.Dispatch<React.SetStateAction<number>> +} + +export function Slider({ playback, slider, setSlider }: GeshemSliderProps) { + const handleStyle = { + height: 40, + width: 40, + border: 0, + marginTop: -10, + boxShadow: ".5px .5px 2px 1px rgba(0,0,0,.32)" + }; + + const railStyle = { + height: 20, + backgroundColor: "#3498db" + }; + + const trackStyle = { + display: "none" + }; + + return ( + <div id="slider"> + <CustomSlider + min={0} + max={playback ? PLAYBACK_SLOTS : 9} + defaultValue={slider} + handleStyle={handleStyle} + railStyle={railStyle} + trackStyle={trackStyle} + onChange={val => setSlider(val)} + /> + </div> + ); +} |
