Sha256: 8c601b53f5430e10348166c99757c34ce0782fe120baf1c36e9b9fab539ae176
Contents?: true
Size: 1.98 KB
Versions: 85
Compression:
Stored size: 1.98 KB
Contents
/* @flow */ import React from 'react' import classnames from 'classnames' import { buildAriaProps, buildDataProps, } from '../utilities/props' import { Icon, } from '../' type StarRatingProps = { aria?: object, className?: string, data?: object, fixedWidth?: boolean, hideRating: boolean, icon?: string, id?: string, rating: number, } const StarRating = ({ aria = {}, className, data = {}, hideRating = false, id, rating = 0, }: StarRatingProps) => { const ariaProps = buildAriaProps(aria) const dataProps = buildDataProps(data) const css = classnames([ 'pb_star_rating_kit', className, ]) const starCount = () => ( [...Array(parseInt(rating))] ) const hasHalfStar = () => ( parseFloat(rating) % 1 !== 0 ) return ( <div {...ariaProps} {...dataProps} className={css} id={id} > <If condition={!hideRating}> <div className="pb_star_rating_number"> {rating} </div> </If> <div className="pb_star_rating_wrapper"> <div className="pb_star_rating_highlight"> {starCount().map((_, index) => ( <Icon fixedWidth={false} icon="star" key={index} /> ))} <If condition={hasHalfStar()}> <Icon fixedWidth={false} icon="star-half" /> </If> </div> <div className="pb_star_rating_base"> <Icon fixedWidth={false} icon="star" /> <Icon fixedWidth={false} icon="star" /> <Icon fixedWidth={false} icon="star" /> <Icon fixedWidth={false} icon="star" /> <Icon fixedWidth={false} icon="star" /> </div> </div> </div> ) } export default StarRating
Version data entries
85 entries across 85 versions & 1 rubygems