Sha256: 122ab9670ede84e08767b1fcfb8ed8918f9a94663d9c51d5b99bbfeaa0dfe9c4

Contents?: true

Size: 1.99 KB

Versions: 49

Compression:

Stored size: 1.99 KB

Contents

import React from "react"
import { GlobalProps } from '../../utilities/globalProps'
import Icon from '../../pb_icon/_icon'
import Flex from '../../pb_flex/_flex'
import { getStarIconObject } from "../stars/utils"

type StarRatingDisplayProps = {
    backgroundType: "fill" | "outline",
    colorOption: "yellow" | "primary" | "subtle" | "outline",
    dark: boolean,
    denominator: number,
    layoutOption: "default" | "number" | "onestar",
    rating: number,
    size: "xs" | "sm" | "md" | "lg",
} & GlobalProps

const StarRatingDisplay = (props: StarRatingDisplayProps) => {
    const {
        backgroundType,
        colorOption,
        dark,
        denominator,
        layoutOption,
        rating,
        size,
    } = props
    const denominatorStyle = layoutOption === "onestar" ? 1 : denominator
    const activeStars = Math.round(rating) > denominatorStyle ? denominatorStyle : Math.round(rating)
    const emptyStars = denominatorStyle - Math.round(rating) < 0 ? 0 : denominatorStyle - Math.round(rating)
    const starIcon = getStarIconObject(backgroundType, colorOption, dark, size)

    return (
        <Flex className="star_flex_area">
            {[...Array(activeStars)].map((_, index) => (
                <React.Fragment key={index}>
                    <Icon
                        className={starIcon[colorOption].className}
                        customIcon={starIcon[colorOption].icon as unknown as { [key: string]: SVGElement }}
                        icon=""
                    />
                </React.Fragment>
            ))}
            {[...Array(emptyStars)].map((_, index) => (
                <React.Fragment key={index}>
                    <Icon
                        className={starIcon[backgroundType].className}
                        customIcon={starIcon[backgroundType].icon  as unknown as { [key: string]: SVGElement }}
                        icon=""
                    />
                </React.Fragment>
            ))}
        </Flex>
    )
}

export default StarRatingDisplay

Version data entries

49 entries across 49 versions & 1 rubygems

Version Path
playbook_ui-14.1.0.pre.alpha.PBNTR455ganttchartPOC3569 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.1.0.pre.alpha.fixaction3547 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.1.0.pre.alpha.PA1477timestampkit3536 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.testthemeexport3533 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.updateviewcomponentgem3527 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PLAY15063526 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PLAY15063525 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PLAY15063524 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PLAY15063523 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PLAY15063522 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PBNTR416formpillsizes3521 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PLAY15063520 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PLAY14923518 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PLAY15063511 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PA1477timestampkit3509 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PLAY14733507 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PBNTR416formpillsizes3506 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PA1477timestampkit3502 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PBNTR415starratingform3493 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx
playbook_ui-14.0.0.pre.alpha.PBNTR415starratingform3492 app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_display.tsx