🚨 Active Supply Chain Attack:node-ipc Package Compromised.Learn More
Socket
Book a DemoSign in
Socket

@freakycoder/react-native-single-select

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@freakycoder/react-native-single-select

Customizable & Easy to Use Single Select Library for React Native

latest
Source
npmnpm
Version
1.0.0
Version published
Weekly downloads
102
108.16%
Maintainers
1
Weekly downloads
 
Created
Source
React Native Single Select

Battle Tested ✅

Customizable & Easy to Use Single Select Library for React Native

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

Dark Theme Light Theme
React Native Internet Connection Alert React Native Internet Connection Alert

Installation

Add the dependency:

npm i @freakycoder/react-native-single-select
npx pod-install // After Install the `react-native-spinkit`

Peer Dependency

You need to install this dependency

"react-native-spinkit": "^1.5.1"

Features

  • Light Mode ☀️
  • Dark Mode 🌙
  • TextInput 💬
  • Fully Animated Functionality 😍
  • Built-in Search Filter 🎊
  • Image Feature 💪
  • Custom Image Component Support 😋
  • Custom Text Component Support 😋
  • Many More...

Usage

Import

import RNSingleSelect, {
  ISingleSelectDataType,
} from "@freakycoder/react-native-single-select";

Fundamental Usage

<RNSingleSelect
  data={staticData}
  darkMode
  onSelect={(selectedItem: ISingleSelectDataType) =>
    console.log("SelectedItem: ", selectedItem)
  }
/>

Menu Item Format

You must use this format for generating menu bar item.

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

OR with ImageSource

const staticData: Array<ISingleSelectDataType> = [
  { id: 0, value: "Euismod Justo", imageSource: require("./assets/..") },
  { id: 1, value: "Risus Venenatis", imageSource: { uri: "...url" } },
  { id: 1, value: "Risus Venenatis", imageSource: null },
];

Also, here is the interface of ISingleSelectDataType:

export interface ISingleSelectDataType {
  id: number;
  value: string;
  imageSource?: any;
  data?: any;
}

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)
onTextChangefunctionundefinedhandle the onTextChange function
placeholderTextStylestyledefaultextends or override the default placeholder's text style
placeholderTextColorcolordefaultchange the placeholder's text color
spinnerTypestring"ThreeBounce"change the spinner type
spinnerSizenumber30change the spinner size
spinnerColorcolordefaultchange the spinner color
initialValueISingleSelectDataTypenullchange the initial selected item
searchEnabledbooleantruechange search inputs readonly state
valuestringundefinedset the text input value
nestedScrollEnabledbooleanfalseenable/disable nested scrolling for the items

List of available types for Spinner

  • CircleFlip
  • Bounce
  • Wave
  • WanderingCubes
  • Pulse
  • ChasingDots
  • ThreeBounce
  • Circle
  • 9CubeGrid
  • WordPress (IOS only)
  • FadingCircle
  • FadingCircleAlt
  • Arc (IOS only)
  • ArcAlt (IOS only)

Future Plans

  • LICENSE
  • Search Feature
  • Image Feature
  • Customizable Image Component
  • Customizable Text Component
  • Dark Theme / Light Theme Options
  • More Customization for Colors
  • Built-in Spinner
  • Remove the react-native-spinkit and use react-native-animated-spinkit instead
  • Customizable Animations
  • Write an article about the lib on Medium

Credits

Heavily Inspired by Manuel Rovira Dribbble

Author

FreakyCoder, kurayogun@gmail.com

License

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

Keywords

dark

FAQs

Package last updated on 17 Mar 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts