import type { ISliderProps } from "./Slider.d" import type { JSX } from "react" import cs from "classnames" import { FunctionComponent, useCallback, useMemo } from "react" import styles from "./Slider.module.scss" export const Slider: FunctionComponent = ({ value, min, max, step = 1, label, unit, helpText, onChange, className, }): JSX.Element => { const handleChange = useCallback( (e: React.ChangeEvent) => { onChange(Number(e.target.value)) }, [onChange], ) const fillPercent = useMemo( () => ((value - min) / (max - min)) * 100, [value, min, max], ) return (
{label} {value} {unit ? ` ${unit}` : ""}
{helpText && {helpText}}
) }