UNPKG

react-star-rate

Version:

Lightweight, customizable star ratings component for React

80 lines (79 loc) 2.4 kB
import * as React from 'react'; import { CSSAttribute } from 'goober'; import Star from './star'; export interface StarsRatingProps { allowClear?: boolean; allowHalf?: boolean; autoFocus?: boolean; classNamePrefix?: string; count?: number; defaultValue?: number; direction?: 'ltr' | 'rtl'; disabled?: boolean; onBlur?: () => void; onChange?: (value?: number) => void; onFocus?: () => void; onHoverChange?: (value?: number) => void; style?: StarsRatingStyles; symbol?: React.ReactNode; tabIndex?: number; value?: number; } declare type StarsRatingStyles = { style?: CSSAttribute; full?: { first?: CSSAttribute; second?: CSSAttribute; star?: CSSAttribute; }; half?: { first?: CSSAttribute; second?: CSSAttribute; star?: CSSAttribute; }; zero?: { first?: CSSAttribute; second?: CSSAttribute; star?: CSSAttribute; }; hover?: Omit<StarsRatingStyles, 'hover'>; }; interface StarsRatingState { clearedValue?: number; hoverValue?: number; value?: number; } declare class StarsRating extends React.Component<StarsRatingProps, StarsRatingState> { static defaultProps: { allowClear: boolean; allowHalf: boolean; classNamePrefix: string; count: number; defaultValue: number; direction: string; disabled: boolean; onChange: () => void; onHoverChange: () => void; style: {}; symbol: string; tabIndex: number; }; ratingContainerRef?: HTMLUListElement | null; starRefs?: { [key: number]: Star; }; constructor(props: StarsRatingProps); componentDidMount(): void; static getDerivedStateFromProps(nextProps: StarsRatingProps, state: StarsRatingState): StarsRatingState; onHover: (event: React.MouseEvent<HTMLLIElement>, index: number) => void; onMouseLeave: () => void; onClick: (event: React.MouseEvent, index: number) => void; onFocus: () => void; onBlur: () => void; changeValue: (value: number) => void; saveStarRef: (index: number) => (node: Star) => void; getStarValue: (index: number, x: number) => number; focus: () => void; render(): JSX.Element; } export default StarsRating;