3.2.2 • Published 1 year ago

star-rating-react-component v3.2.2

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Contributors Forks Stargazers Issues MIT License LinkedIn

Table of Contents

About The Project

This is a Star Rating System Component for React that renders a Star Rating graphical interface. The generator is highly customizable, and lets you choose everything, colors, size, number of stars, etc... More info on Usage in the proper Section. It weighs 4kB.

Built With

Getting Started

You can use this Component with:

npm install -s star-rating-react-component

Peer deps:

  • react
  • react-dom

Usage

  • This is the most basic way to import the Component:
import React from 'react';
import Star from 'star-rating-react-component'; 

 function App(){ 
return (
    <>
     <Star/>
    </> 
     )
}

Props:

If you pass no props, it will have the default props:

let defaultProps = {
  options: {
    name: 'half-grad',
    numOfStars: 5,
    starsWidth: 30,
    color: "green",
    bgColor: "white",
    borderColor: "green",
    scoreColor: "inherit"
  },
  handleScore: (score) => { console.log(score) }
}

The best way to customize the Component is to declare a custom options object and an handleScore callback fired on click event:

import React from 'react';
import Star from 'star-rating-react-component'; 

let options = {
  name: 'custom',
  numOfStars: 5,
  starsWidth: 40,
  color: "#ffffff",
  bgColor: " #e6e6e6",
  borderColor: "orange",
  scoreColor: "inherit"
}

 function App(){ 

   const handleScore = (score) => {
    console.log(score);
 }

return (
    <>
     <Star options={options} handleScore={handleScore}/> 
    </>
     )
}

If you are going to use this component more than once, it's important you set a different name for each one, because the name is used to manage the id of the filling gradient and must be unique.

In case you are rendering multiple Components with map() method, you should do it like this:

{arr.map((x,i) => (
 <Star options={{...options, name:i}}
)}
)

Or if you are rendering it inside a component which itself is rendered multiple times :

     {arr.map((x,i) => (
 <MyComponent options={{...options, name:i}}/>  
)}


function MyComponent({options}){ 
return (
<>
<Star options={options}/>
</> 
)
}

This is necessary to give unique id's to each Component in order to avoid inconsistencies in the hovering effect.

https://react-ifgbpv.stackblitz.io

Roadmap

See the open issues for a list of proposed features (and known issues).

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Cesare Polonara - @CesarePolonara - cesare.polonara@gmail.com NPM : https://www.npmjs.com/package/star-rating-react-component Demo Link : https://react-ifgbpv.stackblitz.io Personal Site : http://cesare-polonara.netlify.app/

3.1.8

1 year ago

3.2.2

1 year ago

3.1.3

1 year ago

3.1.2

1 year ago

3.1.7

1 year ago

3.1.6

1 year ago

3.1.5

1 year ago

3.1.4

1 year ago

3.2.1

3 years ago

3.2.0

3 years ago

3.1.1

4 years ago

3.1.0

4 years ago

3.0.3

4 years ago

3.0.2

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.1.7

4 years ago

2.1.6

4 years ago

2.1.5

4 years ago

2.1.4

4 years ago

2.1.3

4 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.7

4 years ago

2.0.6

4 years ago

2.0.5

4 years ago

2.0.4

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago