import * as React from 'react';
import styled from 'styled-components';
import type { JSX } from 'react';
import { StarIcon } from '@redocly/theme/icons/StarIcon/StarIcon';
import { StarFilledIcon } from '@redocly/theme/icons/StarFilledIcon/StarFilledIcon';
export type StarsProps = {
max?: number;
name?: string;
value?: number;
onChange: (value: number) => void;
};
export function Stars({ max = 5, onChange, value }: StarsProps): JSX.Element {
const [hovered, setHovered] = React.useState(value || 0);
const stars: JSX.Element[] = [];
for (let index = 1; index <= max; index++) {
stars.push(
onChange(index)}
onMouseOver={() => setHovered(index)}
onMouseLeave={() => !value && setHovered(0)}
>
{hovered < index ? (
) : (
)}
,
);
}
return {stars};
}
const StarsWrapper = styled.div`
display: flex;
gap: var(--spacing-xs);
flex-direction: row;
align-items: center;
`;
const Star = styled.button.attrs({
type: 'button',
})`
cursor: pointer;
padding: 0;
border: none;
background-color: transparent;
height: 16px;
gap: var(--spacing-xs);
`;