Sha256: c37661e50c651bb4e99dfd662c1556d1ad0a12c221c685879edd0e2bcacdbaf2
Contents?: true
Size: 1.93 KB
Versions: 53
Compression:
Stored size: 1.93 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: Numeric, } 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} > <div className="pb_star_rating_number"> <If condition={!hideRating}> {rating} </If> </div> <div className="pb_star_rating_wrapper"> <div className="pb_star_rating_highlight"> {starCount().map((_, index) => ( <Icon fixedWidth icon="star" key={index} /> ))} <If condition={hasHalfStar()}> <Icon fixedWidth icon="star-half" /> </If> </div> <div className="pb_star_rating_base"> <Icon fixedWidth icon="star" /> <Icon fixedWidth icon="star" /> <Icon fixedWidth icon="star" /> <Icon fixedWidth icon="star" /> <Icon fixedWidth icon="star" /> </div> </div> </div> ) } export default StarRating
Version data entries
53 entries across 53 versions & 1 rubygems