aboutsummaryrefslogtreecommitdiff
path: root/src/components/ControlSlider.tsx
diff options
context:
space:
mode:
authorRuben Beltran del Rio <jj@r.bdr.sh>2026-01-30 11:31:24 +0100
committerRuben Beltran del Rio <jj@r.bdr.sh>2026-01-30 13:05:48 +0100
commit0d4b61993cba37c180ac91e40a0fb362711de8de (patch)
treef41dd68420b51766c1ca6fc1ee2c20dc5df830d1 /src/components/ControlSlider.tsx
Initial implementation
Diffstat (limited to 'src/components/ControlSlider.tsx')
-rw-r--r--src/components/ControlSlider.tsx36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/components/ControlSlider.tsx b/src/components/ControlSlider.tsx
new file mode 100644
index 0000000..34d3c82
--- /dev/null
+++ b/src/components/ControlSlider.tsx
@@ -0,0 +1,36 @@
+import React from "react";
+
+interface ControlSliderProps {
+ label: string;
+ name: string;
+ value: number;
+ min: number;
+ max: number;
+ step: number;
+ onChange: (value: string) => void;
+}
+
+export const ControlSlider: React.FC<ControlSliderProps> = ({
+ label,
+ name,
+ value,
+ min,
+ max,
+ step,
+ onChange,
+}) => {
+ return (
+ <div className="control-row">
+ <label>{label}</label>
+ <input
+ type="range"
+ name={name}
+ min={min}
+ max={max}
+ value={value}
+ onChange={(event) => onChange(event.target.value)}
+ step={step}
+ />
+ </div>
+ );
+};