0.4.0 • Published 3 years ago
react-native-actions-sheet-picker-serial-luncher v0.4.0
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-pickeror
npm install react-native-actions-sheet-pickerUsage
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
- Multiple select
 - Issue 3 (https://github.com/Bur0/react-native-actions-sheet-picker/issues/3)
 - Issue 4 (https://github.com/Bur0/react-native-actions-sheet-picker/issues/4)
 - renderListItem | props
 - Selected highlight
 
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT
0.4.0
3 years ago