0.3.0 • Published 3 years ago

@freakycoder/react-native-multiple-select v0.3.0

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

Battle Tested ✅

React Native Multi Select

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

Installation

Add the dependency:

npm i @freakycoder/react-native-multiple-select

Peer Dependencies

"@freakycoder/react-native-bounceable": ">= 0.1.0",
"react-native-animated-spinkit": ">= 1.5.2",
"react-native-bouncy-checkbox": ">= 1.0.7"

Usage

Import

import RNMultiSelect, {
  IMultiSelectDataTypes,
} from "@freakycoder/react-native-multiple-select";

Fundamental Usage

<RNMultiSelect
  disableAbsolute
  data={staticData}
  onSelect={(selectedItems) => console.log("SelectedItems: ", selectedItems)}
/>

Data Format

You MUST use this format to generate menu items

import RNMultiSelect, {
  IMultiSelectDataTypes,
} from "@freakycoder/react-native-multiple-select";

const staticData: Array<IMultiSelectDataTypes> = [
  {
    id: 0,
    value: "Euismod Justo",
    isChecked: false,
  },
  {
    id: 1,
    value: "Risus Venenatis",
    isChecked: false,
  },
  {
    id: 2,
    value: "Vestibulum Ullamcorper",
    isChecked: false,
  },
  {
    id: 3,
    value: "Lorem Nibh",
    isChecked: false,
  },
  {
    id: 4,
    value: "Ligula Amet",
    isChecked: false,
  },
];

Configuration - Props

PropertyTypeDefaultDescription
onSelectfunctionundefinedset the selection function when a menu item is selected
dataArrayundefinedset the menu item data array for generating menu bar items
widthnumber250change the width of the component
heightnumber50change the height of the main single select button
darkModebooleanfalsechange the theme of the component to dark theme
placeholderstring"Select"change the placeholder of the single select component
imageHeightnumber25change the image source's menu item's image height
imageWidthnumber25change the image source's menu item's image width
ImageComponentcomponentImageset your own custom Image component instead of default Image one
TextComponentcomponentTextset your own custom Text component instead of default Text one
buttonContainerStyleViewStyledefaultchange/override the top of the single select button (the main one)
menuBarContainerStyleViewStyledefaultchange/override the top of the single select bottom menu bar
arrowImageStyleImageStyledefaultchange/override the top of the arrow image's style
menuItemTextStyleTextStyledefaultchange/override the top of the each menu bar's item text style
disableAbsolutebooleanfalseif you do not want to use the library without absolute to fix bottom menubar's overlaps simply make it true
menuBarContainerWidthnumber250change the bottom menu bar's width
menuBarContainerHeightnumber150change the bottom menu bar's height
disableFilterAnimationbooleanfalsedisable the filter animation for huge lists (especially on Android)
onDoneButtonPressfunctionundefinedhandle the onDoneButtonPress function
doneButtonTextStylestyledefaultchange the done button's text style
doneButtonShadowColorstyledefaultchange the done button's shadow style
multiSelectionTextstringdefaultchange the 3 or more items are selected's text part
placeholderTextStylestyledefaultextends or override the default placeholder's text style
Spinnerspinner componentChasechange the spinner type
spinnerSizenumber30change the spinner size
spinnerColorcolordefaultchange the spinner color

List of available types for Spinner

  • <Plane />
  • <Chase />
  • <Bounce />
  • <Wave />
  • <Pulse />
  • <Flow />
  • <Swing />
  • <Circle />
  • <CircleFade />
  • <Grid />
  • <Fold />
  • <Wander />

Future Plans

  • LICENSE
  • Typescript Challenge!
  • Dark Mode (Coming Soon!)
  • Write an article about the lib on Medium

Credits

Heavily Inspired by Manuel Rovira's Work

Author

FreakyCoder, kurayogun@gmail.com

License

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