import React from 'react'; import { withStyles } from '@material-ui/core/styles'; import Rating, { IconContainerProps } from '@material-ui/lab/Rating'; import StarBorderIcon from '@material-ui/icons/StarBorder'; import FavoriteIcon from '@material-ui/icons/Favorite'; import SentimentVeryDissatisfiedIcon from '@material-ui/icons/SentimentVeryDissatisfied'; import SentimentDissatisfiedIcon from '@material-ui/icons/SentimentDissatisfied'; import SentimentSatisfiedIcon from '@material-ui/icons/SentimentSatisfied'; import SentimentSatisfiedAltIcon from '@material-ui/icons/SentimentSatisfiedAltOutlined'; import SentimentVerySatisfiedIcon from '@material-ui/icons/SentimentVerySatisfied'; import Typography from '@material-ui/core/Typography'; import Box from '@material-ui/core/Box'; const StyledRating = withStyles({ iconFilled: { color: '#ff6d75', }, iconHover: { color: '#ff3d47', }, })(Rating); const customIcons: { [index: string]: { icon: React.ReactElement; label: string } } = { 1: { icon: , label: 'Very Dissatisfied', }, 2: { icon: , label: 'Dissatisfied', }, 3: { icon: , label: 'Neutral', }, 4: { icon: , label: 'Satisfied', }, 5: { icon: , label: 'Very Satisfied', }, }; function IconContainer(props: IconContainerProps) { const { value, ...other } = props; return {customIcons[value].icon}; } export default function CustomizedRatings() { return (
Custom empty icon } /> Custom icon and color `${value} Heart${value !== 1 ? 's' : ''}`} precision={0.5} icon={} /> 10 stars Custom icon set customIcons[value].label} IconContainerComponent={IconContainer} />
); }