Sha256: 0ed587af6b8b24d95e8dcd11488ce51cddc88b790336084d84151bcc5dabaca5

Contents?: true

Size: 1.94 KB

Versions: 243

Compression:

Stored size: 1.94 KB

Contents

import React from "react"
import classnames from "classnames"

import { buildAriaProps, buildDataProps } from "../utilities/props"

import Icon from "../pb_icon/_icon"

type StarRatingProps = {
  aria?: {[key: string]: string},
  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(Math.floor(rating))]
  )

  const hasHalfStar = () => (
    rating % 1 !== 0
  )

  return (
    <div
        {...ariaProps}
        {...dataProps}
        className={css}
        id={id}
    >
    {!hideRating && (
      <div className="pb_star_rating_number">
        {rating}
      </div>
    )}
      <div className="pb_star_rating_wrapper">
        <div className="pb_star_rating_highlight">
          {starCount().map((_, index) => (
            <Icon
                fixedWidth={false}
                icon="star"
                key={index}
            />
          ))}
          {hasHalfStar() && (
            <Icon
              fixedWidth={false}
              icon="star-half"
            />
          )}
        </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

243 entries across 243 versions & 1 rubygems

Version Path
playbook_ui-13.12.0.pre.alpha.PLAY880cardkithighlightzindex1655 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.PLAY1081exportingtypes1627 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.PLAY1081exportingtypes1626 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.PLAY1081exporttypes1624 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.PLAY1081exporttypes1623 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.PLAY1081exporttypes1611 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.PLAY1081exporttypes1609 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.PLAY1081exporttypes1608 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.play1051testhighcharts1581 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.play1051testhighcharts1580 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.play1051testhighcharts1579 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.PLAY1093typeaheadkitdocbug1577 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.play1051testhighcharts1574 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.play1051highchartstest1567 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.play1051highchartstest1558 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.play1051highchartstest1556 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0.pre.alpha.PLAY1051removinghighchartsdependency1551 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.12.0 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.11.1 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx
playbook_ui-13.11.0 app/pb_kits/playbook/pb_star_rating/_star_rating.tsx