import React from 'react';
import { withStyles, makeStyles, Theme, createStyles } from '@material-ui/core/styles';
import Slider from '@material-ui/core/Slider';
import Typography from '@material-ui/core/Typography';
import Tooltip from '@material-ui/core/Tooltip';
const useStyles = makeStyles((theme: Theme) =>
createStyles({
root: {
width: 300 + theme.spacing(3) * 2,
},
margin: {
height: theme.spacing(3),
},
}),
);
interface Props {
children: React.ReactElement;
open: boolean;
value: number;
}
function ValueLabelComponent(props: Props) {
const { children, open, value } = props;
return (
{children}
);
}
const iOSBoxShadow =
'0 3px 1px rgba(0,0,0,0.1),0 4px 8px rgba(0,0,0,0.13),0 0 0 1px rgba(0,0,0,0.02)';
const marks = [
{
value: 0,
},
{
value: 20,
},
{
value: 37,
},
{
value: 100,
},
];
const IOSSlider = withStyles({
root: {
color: '#3880ff',
height: 2,
padding: '15px 0',
},
thumb: {
height: 28,
width: 28,
backgroundColor: '#fff',
boxShadow: iOSBoxShadow,
marginTop: -14,
marginLeft: -14,
'&:focus, &:hover, &$active': {
boxShadow: '0 3px 1px rgba(0,0,0,0.1),0 4px 8px rgba(0,0,0,0.3),0 0 0 1px rgba(0,0,0,0.02)',
// Reset on touch devices, it doesn't add specificity
'@media (hover: none)': {
boxShadow: iOSBoxShadow,
},
},
},
active: {},
valueLabel: {
left: 'calc(-50% + 12px)',
top: -22,
'& *': {
background: 'transparent',
color: '#000',
},
},
track: {
height: 2,
},
rail: {
height: 2,
opacity: 0.5,
backgroundColor: '#bfbfbf',
},
mark: {
backgroundColor: '#bfbfbf',
height: 8,
width: 1,
marginTop: -3,
},
markActive: {
opacity: 1,
backgroundColor: 'currentColor',
},
})(Slider);
const PrettoSlider = withStyles({
root: {
color: '#52af77',
height: 8,
},
thumb: {
height: 24,
width: 24,
backgroundColor: '#fff',
border: '2px solid currentColor',
marginTop: -8,
marginLeft: -12,
'&:focus, &:hover, &$active': {
boxShadow: 'inherit',
},
},
active: {},
valueLabel: {
left: 'calc(-50% + 4px)',
},
track: {
height: 8,
borderRadius: 4,
},
rail: {
height: 8,
borderRadius: 4,
},
})(Slider);
const AirbnbSlider = withStyles({
root: {
color: '#3a8589',
height: 3,
padding: '13px 0',
},
thumb: {
height: 27,
width: 27,
backgroundColor: '#fff',
border: '1px solid currentColor',
marginTop: -12,
marginLeft: -13,
boxShadow: '#ebebeb 0 2px 2px',
'&:focus, &:hover, &$active': {
boxShadow: '#ccc 0 2px 3px 1px',
},
'& .bar': {
// display: inline-block !important;
height: 9,
width: 1,
backgroundColor: 'currentColor',
marginLeft: 1,
marginRight: 1,
},
},
active: {},
track: {
height: 3,
},
rail: {
color: '#d8d8d8',
opacity: 1,
height: 3,
},
})(Slider);
function AirbnbThumbComponent(props: any) {
return (
);
}
export default function CustomizedSlider() {
const classes = useStyles();
return (
iOS
pretto.fr
Tooltip value label
Airbnb
(index === 0 ? 'Minimum price' : 'Maximum price')}
defaultValue={[20, 40]}
/>
);
}