Note: This is a very new project not ready for production use. It's API will change frequently until v1.0.0.
Reusable upvote component for React applications.
- Thorough testing
- Improved props API
Live demo: echenley.github.io/react-upvote
To build the examples locally, run:
npm install
npm start
Then open localhost:8000
in a browser.
The easiest way to use react-upvote is to install it from NPM and include it in your own React build process (using Browserify, Webpack, etc).
You can also use the standalone build by including dist/react-upvote.js
in your page. If you use this, make sure you have already included React, and it is available as a global variable.
npm install react-upvote --save
var Upvote = require('react-upvote');
<Upvote
voteStatus={ user.votes[postData.id] || 0 }
upvoteContent={ <i className="upvote-icon fa fa-arrow-up"></i> }
downvoteContent={ <i className="downvote-icon fa fa-arrow-down"></i> }
afterContent={ <span className="upvote-count">{ postData.upvotes }</span> }
shouldAllow={ () => user.isLoggedIn }
onDisallowed={ () => this.errorMessage('You have to log in!') }
onUpvote={ () => this.upvotePost(postData.id) }
onDownvote={ () => this.downvotePost(postData.id) }
onRemoveVote={ () => this.removeVote(postData.id) }
/>
Property | Type | Default Value | Description |
---|---|---|---|
className | String | 'react-upvote' |
Class given to the upvote container |
voteStatus | Integer | 0 |
Current user's vote status. Can be -1 (downvoted) 0 (no vote) or 1 (upvoted) |
upvoteCount | Integer | 0 |
The component's current upvote count |
shouldAllow | Function | null |
Function returning a boolean which determines whether to allow the current user to vote. |
onDisallowed | Function | null |
Function called when shouldAllow returns false |
onUpvote | Function | null |
Function called when an upvote is registered |
onDownvote | Function | null |
Function called when a downvote is registered |
onRemoveVote | Function | null |
Function called when undoing a previous vote |
upvoteContent | Component | null |
|
downvoteContent | Component | null |
NOTE: The source code for the component is in src
. A transpiled CommonJS version (generated with Babel) is available in lib
for use with node.js, browserify and webpack. A UMD bundle is also built to dist
, which can be included without the need for any build system.
To build, watch and serve the examples (which will also watch the component source), run npm start
. If you just want to watch changes to src
and rebuild lib
, run npm run watch
(this is useful if you are working with npm link
).
MIT Licensed. Copyright (c) Evan Henley 2015.