import { getTrackBackground, Range } from "react-range"; import { getCorrectTextColor } from "renderer/helpers/correct-text-color"; import { ThemeColor, useThemeColor } from "renderer/hooks/use-theme-color.hook"; type Props = { colorType?: ThemeColor; values: number[]; onChange?: (values: number[]) => void; onFinalChange?: (values: number[]) => void; min: number; max: number; step?: number; renderLabel?: (value: number) => JSX.Element; colors?: string[]; }; export function BsmRange({ colorType = "first-color", values, onChange, onFinalChange, min, max, renderLabel, step = 1, colors }: Props) { const color = useThemeColor(colorType); const labelTextColor = color && getCorrectTextColor(color); return ( onChange?.(v)} onFinalChange={v => onFinalChange?.(v)} renderTrack={({ props, children }) => (
{children}
)} renderThumb={({ index, props }) => (
{renderLabel?.(values[index])}
)} /> ); }