summaryrefslogtreecommitdiff
path: root/src/Slider.tsx
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2022-11-29 09:19:07 +0200
committerGitHub <noreply@github.com>2022-11-29 09:19:07 +0200
commit50d9d173d1c2cf22efb960fd122ca64201f34bf5 (patch)
tree8e54dc74a491c564575a47f85f79ae1d41c03059 /src/Slider.tsx
parent3c0fce7319f4e4ae076527eb98e6164210bdb34c (diff)
parent8507df99e5a3a77fa2a2f1c716e2eefeee92f11b (diff)
Merge pull request #30 from yuvadm/v6v6.0.0
Major v6 upgrade
Diffstat (limited to 'src/Slider.tsx')
-rw-r--r--src/Slider.tsx45
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>
+ );
+}