0.1.2 • Published 3 years ago

react-native-poll v0.1.2

Weekly downloads
11
License
MIT
Repository
github
Last release
3 years ago

Voting and poll library for React Native with fully customizable options

npm version npm Platform - Android and iOS License: MIT styled with prettier

Installation

Add the dependency:

npm i react-native-poll

Peer Dependencies

"@freakycoder/react-native-bounceable": ">= 0.2.4",

Usage

Import

import RNPoll, { IChoice } from "react-native-poll";

Fundamental Usage

<RNPoll
  totalVotes={30}
  choices={choices}
  onChoicePress={(selectedChoice: IChoice) =>
    console.log("SelectedChoice: ", selectedChoice)
  }
/>

Advanced Usage

import RNAnimated from "react-native-animated-component";

<RNPoll
  appearFrom="left"
  animationDuration={750}
  totalVotes={30}
  choices={choices}
  PollContainer={RNAnimated}
  PollItemContainer={RNAnimated}
  onChoicePress={(selectedChoice: IChoice) =>
    console.log("SelectedChoice: ", selectedChoice)
  }
/>;

Data Format (IChoice)

You must use this data format for generating the poll choices

const choices: Array<IChoice> = [
  { id: 1, choice: "Nike", votes: 12 },
  { id: 2, choice: "Adidas", votes: 1 },
  { id: 3, choice: "Puma", votes: 3 },
  { id: 4, choice: "Reebok", votes: 5 },
  { id: 5, choice: "Under Armour", votes: 9 },
];

Example Project 😍

You can checkout the example project 🥰

Simply run

  • npm i
  • react-native run-ios/android

should work of the example project.

Configuration - Props

Fundamentals

PropertyTypeDefaultDescription
totalVotesnumberundefinedset the total votes of the poll
choicesArrayundefinedset the choices array for the generating them
onChoicePressfunctiondefaultset your own logic when a choice is pressed/selected

Customization (Optionals)

PropertyTypeDefaultDescription
hasBeenVotedbooleanfalselet you to enable if the poll is already voted
votedChoiceByIDnumber(id)undefinedlet you to select the already voted poll choice
disableBuiltInIncreaseVotebooleanfalseenable/disable the built-in automatically increase the vote system when a choice is selected
styleViewStyledefaultset or override the style object for the main container
choiceTextStyleTextStyledefaultset or override the style object for the choice text style
percentageTextStyleTextStyledefaultset or override the style object for the percentage text style
checkMarkImageStyleImageStyledefaultset or override the style object for the checkmark image style
borderColorcolor#aabee3change the border color
fillBackgroundColorcolor#aabee3change the filling background color
checkMarkIconImageSourceISourcedefaultchange the check mark image source
PollContainercomponentdefaultset your own component instead of default react-native View component such as react-native-animated-component
PollItemContainercomponentdefaultset your own component instead of default react-native View component such as react-native-animated-component
ImageComponentcomponentdefaultset your own component instead of default react-native Image component such as FastImage

Future Plans

  • LICENSE
  • More animation options
  • Other poll design options
  • Write an article about the lib on Medium

Credits

Inspired on aarkalyk

Author

FreakyCoder, kurayogun@gmail.com

License

React Native Poll is available under the MIT license. See the LICENSE file for more info.