npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-picklist

v1.5.0

Published

General page for single/multiple select/show with single/multiple data level.

Downloads

48

Readme

react-native-picklist

npm version Build Status

中文说明

This is a picklist page. It supports:

  • Single Level or Multiple Level data.
  • Single Select or Multiple Select.
  • Show or Hide the internal components.
  • Customize the UI component.
  • Search in the data automaticlly.
  • Section style page.

ScreenShots

Same UI on Android.

Install

Install by Yarn:

yarn add react-native-picklist

Install by NPM:

npm install --save react-native-picklist

Usage

Import the module in the file:

import PickList from 'react-native-picklist';

export default class TopPage extends React.PureComponent {
    static navigationOptions = PickList.navigationOptions;

    render() {
        return (
            <PickList
                // ...
            />
        );
    }
}

If you want to use button in navigationOptions, you should set following items:

import { HeaderButton } from 'react-navigation-header-buttons';

HeaderButton.defaultProps.getButtonElement = (props) => {
    const {title} = props;
    return (
        <Text>
            {title}
        </Text>
    );
};

You can set the following properties or see example project to learn how to use it.

Properties

Required:

  • title: Page title.
  • data: Data to show. We will construct a virtual root node to contain it.
  • navigation: Navigator's props.

Optional:

  • firstTitleLine: First item displayed in TitleLine when it has the multi-level data and show the title line.
  • isCascade: When multi-level and multi-select are true, auto-cascading selects child nodes or not. Default is true.
  • multilevel: Has multi-level data or not. Default is false.
  • multiselect: Is multi-select or not. Default is false.
  • onFinish: Pass the selected items when finish selecting.
  • rightTitle: Button title on the right corner.
  • rightClick: Button click callback on the right corner.
  • renderRow: Customize a row display. You can override this property to make the list readonly. Default implement is in DefaultRow.js.
  • renderHeader: Customize header of page.
  • renderSingleSelectIcon: Customize single-selected icon.
  • renderMultiSelectIcon: Customize multi-selected icon.
  • showBottomView: Show bottom bar or not.
  • showSearchView: Show search bar or not.
  • showTitleLine: Show title line at the header or not.
  • showAllCell: Show select all or deselect all cell or not.
  • showCount: Show not leaf item's children count and selected count.
  • numberOfTextLines: Max number of lines of Text component in one row. Default is 0, means no restrict of lines. You can set to 1 for single line text mode.
  • directBackWhenSingle: Directly go back to previous page or not when single-select data.
  • cancelableWhenDirectBack: Selected item is cancelable or not when single-select data and directBackWhenSingle is true.
  • selectedIds: Initial selected item's identifier list.
  • selectable: Can a tree node selectable or not.
  • childrenKey: Children key of tree node.
  • idKey: Identifier key of tree node, supports array of string or one string only.
  • labelKey: Label key of tree node.
  • searchKeys: Normal search keys of tree node.
  • sort: Sort method for data list.
  • split: Split method when generate sections of data list.
  • flatListProps: Props of FlatList when data is flat.
  • sectionListProps: Props of SectionList when data is splitted to sections.
  • searchListProps: Props of FlatList when searching.
  • buttonProps: Props of HeaderButton in navigation bar.
  • labels: Label text in component.

You can change labels globally by following statement:

PickList.defaultProps.labels.xxx = 'xxx';

You can call function with PickList view reference:

<PickList
    ref={this.picklist = ref}
    ...
/>

this.picklist.xxx();

Following functions supported:

  • getSelectedItems: () => Tree[]: Get current selected items. You can handle these with Tree API.
  • backToPreviousPage: () => boolean: Auto go back to previous page. If it is the first page, it returns false. Otherwise it returns true.

Example Project

You can open the example project by following steps:

  1. Enter example. Use yarn or npm install to install the modules. Run npm start in a seperate terminal.
  2. Create a example project with entry file index and module name test.