1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/renderer/components/slider/slider.tsx
Panu Horsmalahti dcf253e7d5
Add eslint rule padding-line-between-statements (#1593)
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
2020-12-02 09:55:52 +02:00

44 lines
1.1 KiB
TypeScript

// Wrapper for <Slider/> component
// API docs: https://material-ui.com/lab/api/slider/
import "./slider.scss";
import React, { Component } from "react";
import { cssNames } from "../../utils";
import MaterialSlider, { SliderClassKey, SliderProps as MaterialSliderProps } from "@material-ui/core/Slider";
export interface SliderProps extends Omit<MaterialSliderProps, "onChange"> {
className?: string;
onChange?(evt: React.FormEvent<any>, value: number): void;
}
const defaultProps: Partial<SliderProps> = {
step: 1,
min: 0,
max: 100,
};
export class Slider extends Component<SliderProps> {
static defaultProps = defaultProps as object;
private classNames: Partial<{ [P in SliderClassKey]: string }> = {
track: "track",
thumb: "thumb",
disabled: "disabled",
vertical: "vertical",
};
render() {
const { className, ...sliderProps } = this.props;
return (
<MaterialSlider
{...sliderProps}
classes={{
root: cssNames("Slider", className),
...this.classNames
}}
/>
);
}
}