File size: 948 Bytes
3568151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import React from 'react'
import '../styles/VolumeSlider.css'

export const VolumeSlider: React.FC<{
  label: string
  value: number
  onChange: (value: number) => void
  min?: number
  max?: number
  step?: number
}> = ({
  label,
  value,
  onChange,
  min = 0,
  max = 1,
  step = 0.01
}) => {
  const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
    const newValue = parseFloat(event.target.value)
    onChange(newValue)
  }

  const percentage = Math.round((value / max) * 100)

  return (
    <div className="volume-slider">
      <div className="volume-slider-header">
        <label className="volume-slider-label">{label}</label>
        <span className="volume-slider-value">{percentage}%</span>
      </div>
      <input
        type="range"
        className="volume-slider-input"
        min={min}
        max={max}
        step={step}
        value={value}
        onChange={handleChange}
      />
    </div>
  )
}