react-native-actions-sheet-picker-serial-luncher
TypeScript icon, indicating that this package has built-in type declarations

0.4.0 • Public • Published

React Native Actions Sheet Picker

A React Native component that provides a filterable select dropdown/picker.

Preview

Installation Guide

yarn add react-native-actions-sheet-picker

or

npm install react-native-actions-sheet-picker

Usage

import React, { useState, useMemo, useEffect } from 'react';

import { StyleSheet, Text, TouchableOpacity, SafeAreaView } from 'react-native';
import { Picker, onOpen } from 'react-native-actions-sheet-picker';

/*
 **Example data:
 */
import countries from './countries.json';

export default function App() {
  const [data, setData] = useState([]);
  const [selected, setSelected] = useState(undefined);
  const [query, setQuery] = useState('');

  useEffect(() => {
    setData(countries);
  }, []);

  /*
   **Example filter function
   * @param {string} filter
   */
  const filteredData = useMemo(() => {
    if (data && data.length > 0) {
      return data.filter((item) =>
        item.name
          .toLocaleLowerCase('en')
          .includes(query.toLocaleLowerCase('en'))
      );
    }
  }, [data, query]);

  /*
   **Input search
   *@param {string} text
   */
  const onSearch = (text) => {
    setQuery(text);
  };

  return (
    <SafeAreaView style={styles.container}>
      <TouchableOpacity
        style={styles.button}
        onPress={() => {
          onOpen('country');
        }}
      >
        <Text>Open ActionSheet</Text>
      </TouchableOpacity>
      <Text style={{ padding: 10 }}>Chosen : {JSON.stringify(selected)}</Text>
      <Picker
        id="country"
        data={filteredData}
        inputValue={query}
        searchable={true}
        label="Select Country"
        setSelected={setSelected}
        onSearch={onSearch}
      />
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
  },
  button: {
    backgroundColor: '#8B93A5',
    padding: 10,
    borderRadius: 6,
    marginTop: 50,
  },
});

Options

Properties Type Description Default
id
*required
string A unique id for the ActionSheet
data array Array of list items {name: string, ...props}[]
inputValue string The value to show for the text input.
searchable boolean Searchable state false
loading boolean Loading state false
label string Flatlist label
height string ActionSheet height Dimensions.get('window').height * 0.5
closeText string Close text "Close"
placeholderText string Placeholder text "Search"
noDataFoundText string No data found text "No Data Found."
placeholderTextColor string Placeholder text color #8B93A5
setSelected function Selected function
onSearch function Textinput search function
renderListItem function Render List item

Style options

Properties Type Description Default
actionSheet ViewStyle Custom style for the action sheet undefined
activityIndicator {color?: string, style?: ViewStyle} Custom style for the activity indicator undefined
close {text?: TextStyle, container?: ViewStyle} Custom style for the close text and container undefined
input TextStyle Custom style for the search input undefined
item {text?: TextStyle, container?: ViewStyle} Custom style for the item text and container undefined
label {text?: TextStyle, container?: ViewStyle} Custom style for the label text and container undefined
noDataFound {text?: TextStyle, container?: ViewStyle} Custom style for the "no data found" text and container undefined

Method

Properties Type Description
onOpen function SheetManager show
onClose function SheetManager hide

Core Props of using packages

| Properties | Type | Description | | --------------------- | -------- | -------------------------------------------------------------------------------------------------------------------- | --- | | actionsSheetProps | object | react-native-actions-sheet | | | flatListProps | object | FlatListProps | | | searchInputProps | object | TextInputProps | |

Roadmap

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

/react-native-actions-sheet-picker-serial-luncher/

    Package Sidebar

    Install

    npm i react-native-actions-sheet-picker-serial-luncher

    Weekly Downloads

    2

    Version

    0.4.0

    License

    MIT

    Unpacked Size

    68.5 kB

    Total Files

    27

    Last publish

    Collaborators

    • mistergooddealfr