├── .babelrc
├── .codeclimate.yml
├── .commitlintrc.json
├── .eslintignore
├── .eslintrc.js
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── config.yml
│ └── feature_request.md
├── dependabot.yml
├── mergify.yml
└── workflows
│ ├── build.yml
│ ├── commitlint.yml
│ ├── dependabot.yml
│ ├── main.yml
│ └── release-please.yml
├── .gitignore
├── .husky
├── commit-msg
└── pre-commit
├── .nvmrc
├── .prettierrc.json
├── .release-please-manifest.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── ex-android.gif
├── ex-ios.gif
├── index.d.ts
├── package.json
├── release-please-config.json
├── src
├── index.js
└── styles.js
├── test
├── setup.js
└── test.js
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "react-native"
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/.codeclimate.yml:
--------------------------------------------------------------------------------
1 | version: '2' # required to adjust maintainability checks
2 | checks:
3 | argument-count:
4 | config:
5 | threshold: 4
6 | complex-logic:
7 | config:
8 | threshold: 4
9 | file-lines:
10 | config:
11 | threshold: 500
12 | method-complexity:
13 | config:
14 | threshold: 5
15 | method-count:
16 | config:
17 | threshold: 20
18 | method-lines:
19 | config:
20 | threshold: 50
21 | nested-control-flow:
22 | config:
23 | threshold: 4
24 | return-statements:
25 | config:
26 | threshold: 4
27 | similar-code:
28 | config:
29 | threshold: 75 # language-specific defaults. an override will affect all languages.
30 | identical-code:
31 | config:
32 | threshold: 50 # language-specific defaults. an override will affect all languages.
33 |
--------------------------------------------------------------------------------
/.commitlintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["./node_modules/cz-ls-commits/commitlint"]
3 | }
4 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | /**/*.d.ts
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | browser: true,
4 | es2021: true,
5 | },
6 | extends: ['plugin:react/recommended', 'airbnb', 'airbnb/hooks'],
7 | plugins: ['react', 'react-native', 'prettier'],
8 | overrides: [
9 | {
10 | env: {
11 | node: true,
12 | },
13 | files: ['.eslintrc.{js,cjs}'],
14 | parserOptions: {
15 | sourceType: 'script',
16 | },
17 | },
18 | ],
19 | parserOptions: {
20 | ecmaVersion: 'latest',
21 | sourceType: 'module',
22 | },
23 | rules: {
24 | 'arrow-body-style': 0,
25 | 'comma-dangle': 0,
26 | 'default-param-last': 0,
27 | 'import/no-extraneous-dependencies': 0,
28 | 'import/prefer-default-export': 0,
29 | 'object-curly-newline': 0,
30 | 'operator-linebreak': 0,
31 | 'prettier/prettier': 'error',
32 | 'react/destructuring-assignment': 0,
33 | 'react/forbid-prop-types': 0,
34 | 'react/jsx-filename-extension': 0,
35 | 'react/jsx-props-no-spreading': 0,
36 | 'react/no-arrow-function-lifecycle': 0,
37 | 'react/no-unused-class-component-methods': 0,
38 | 'react/prop-types': 0,
39 | 'react/static-property-placement': 0,
40 | },
41 | };
42 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 🐛 Bug Report
3 | about: Report a reproducible bug or regression.
4 |
5 | ---
6 |
7 |
8 |
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 |
16 | 1. Go to '...'
17 | 2. Click on '....'
18 | 3. Scroll down to '....'
19 | 4. See error
20 |
21 | **Expected behavior**
22 | A clear and concise description of what you expected to happen.
23 |
24 | **Screenshots**
25 | Add screenshots to help explain your problem. If screenshots aren't applicable to this issue, write "n/a".
26 |
27 | **Additional details**
28 | - Device: [e.g. iPhone6]
29 | - OS: [e.g. iOS8.1]
30 | - react-native-picker-select version: [e.g. 4.3.0]
31 | - react-native version: [e.g. 0.56]
32 | - expo sdk version: [e.g. 38 or n/a]
33 |
34 | **Reproduction and/or code sample**
35 | Provide a link to a reproduction of this issue on https://snack.expo.io **or an explanation why you can not**. Not including a snack link will result in a significant delay in our ability to address this issue.
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: ❓Questions about how to use this library?
4 | url: https://stackoverflow.com/questions/tagged/react-native-picker-select
5 | about: Please read the documentation thoroughly, search through existing issues, and then ask any lingering questions on StackOverflow.
6 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 💡 Feature Request
3 | about: Suggest an idea for this component.
4 |
5 | ---
6 |
7 | **Is your feature request related to a problem? Please describe.**
8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9 |
10 | **Describe the solution you'd like**
11 | A clear and concise description of what you want to happen.
12 |
13 | **Describe alternatives you've considered**
14 | A clear and concise description of any alternative solutions or features you've considered.
15 |
16 | **Additional details**
17 | Add any other details or screenshots about the feature request here.
18 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # To get started with Dependabot version updates, you'll need to specify which
2 | # package ecosystems to update and where the package manifests are located.
3 | # Please see the documentation for all configuration options:
4 | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5 |
6 | version: 2
7 | updates:
8 | - package-ecosystem: 'npm'
9 | directory: '/'
10 | schedule:
11 | interval: weekly
12 | time: '10:00'
13 | timezone: America/New_York
14 | commit-message:
15 | prefix: 'build'
16 | prefix-development: 'build'
17 | include: 'scope'
18 | groups:
19 | prettier:
20 | patterns:
21 | - prettier
22 | - eslint-plugin-prettier
23 |
24 | - package-ecosystem: 'github-actions'
25 | directory: '/'
26 | schedule:
27 | interval: weekly
28 | time: '10:00'
29 | timezone: America/New_York
30 |
--------------------------------------------------------------------------------
/.github/mergify.yml:
--------------------------------------------------------------------------------
1 | pull_request_rules:
2 | - name: automatic merge for Dependabot pull requests
3 | conditions:
4 | - author=dependabot[bot]
5 | - check-success=build
6 | - check-success=commitlint
7 | - 'title~=^build\(deps-dev\): bump '
8 | actions:
9 | merge:
10 | method: squash
11 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: build
2 | on: [push, pull_request]
3 |
4 | jobs:
5 | build:
6 | runs-on: ubuntu-latest
7 |
8 | steps:
9 | - name: Checkout repository
10 | uses: actions/checkout@v4
11 |
12 | - name: Use Node.js
13 | uses: actions/setup-node@v4
14 | with:
15 | cache: yarn
16 | node-version-file: .nvmrc
17 |
18 | - name: Install dependencies
19 | run: yarn
20 |
21 | - name: Run ESLint
22 | run: yarn lint
23 |
24 | - name: Setup Code Climate
25 | uses: remarkablemark/setup-codeclimate@v2
26 |
27 | - name: Run Tests and Upload Coverage
28 | run: |
29 | cc-test-reporter before-build
30 | yarn test:coverage
31 | cc-test-reporter after-build --exit-code $?
32 | env:
33 | CC_TEST_REPORTER_ID: 9b36beb22e04451e6414fcc28926f995c253d94877f616b50d192255196fbb68
34 |
35 | - name: Codecov
36 | uses: codecov/codecov-action@v5
37 | env:
38 | CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
39 |
--------------------------------------------------------------------------------
/.github/workflows/commitlint.yml:
--------------------------------------------------------------------------------
1 | name: commitlint
2 | on: [push, pull_request]
3 |
4 | jobs:
5 | commitlint:
6 | runs-on: ubuntu-latest
7 |
8 | steps:
9 | - name: Checkout repository
10 | uses: actions/checkout@v4
11 | with:
12 | fetch-depth: 0
13 |
14 | - name: Use Node.js
15 | uses: actions/setup-node@v4
16 | with:
17 | cache: yarn
18 | node-version-file: .nvmrc
19 |
20 | - name: Install dependencies
21 | run: yarn
22 |
23 | - name: Lint commit message
24 | run: yarn commitlint --from=HEAD~1
25 |
--------------------------------------------------------------------------------
/.github/workflows/dependabot.yml:
--------------------------------------------------------------------------------
1 | name: dependabot
2 | on: pull_request_target
3 |
4 | permissions:
5 | pull-requests: write
6 | contents: write
7 |
8 | jobs:
9 | dependabot:
10 | runs-on: ubuntu-latest
11 | if: github.actor == 'dependabot[bot]' && contains(github.event.pull_request.title, 'deps-dev')
12 | steps:
13 | - name: Approve Dependabot PR
14 | run: gh pr review --approve ${{ github.event.pull_request.html_url }}
15 | env:
16 | GITHUB_TOKEN: ${{ github.token }}
17 |
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | name: Autocloser
2 | on: [issues]
3 | jobs:
4 | autoclose:
5 | runs-on: ubuntu-latest
6 | steps:
7 | - name: Autoclose issues that did not follow issue template
8 | uses: roots/issue-closer@v1.2
9 | with:
10 | repo-token: ${{ secrets.GH_TOKEN }}
11 | issue-close-message: "@${issue.user.login} this issue was automatically closed because it did not follow one of the available issue templates. See [here](https://github.com/lawnstarter/react-native-picker-select/issues/new/choose) for available options."
12 | issue-pattern: ".*Additional detail*"
13 |
--------------------------------------------------------------------------------
/.github/workflows/release-please.yml:
--------------------------------------------------------------------------------
1 | name: release-please
2 | on:
3 | push:
4 | branches:
5 | - master
6 |
7 | jobs:
8 | release-please:
9 | runs-on: ubuntu-latest
10 | outputs:
11 | release_created: ${{ steps.release.outputs.release_created }}
12 |
13 | steps:
14 | - name: Release Please
15 | uses: google-github-actions/release-please-action@v4
16 | id: release
17 | with:
18 | token: ${{ secrets.GH_TOKEN }}
19 |
20 | publish:
21 | needs: release-please
22 | runs-on: ubuntu-latest
23 | if: ${{ needs.release-please.outputs.release_created }}
24 |
25 | steps:
26 | - name: Checkout repository
27 | uses: actions/checkout@v4
28 |
29 | - name: Use Node.js
30 | uses: actions/setup-node@v4
31 | with:
32 | registry-url: https://registry.npmjs.org
33 |
34 | - name: Install dependencies
35 | run: yarn
36 |
37 | - name: Publish
38 | run: npm publish
39 | env:
40 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
41 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | coverage/
4 | .vscode/
5 | .npm/
--------------------------------------------------------------------------------
/.husky/commit-msg:
--------------------------------------------------------------------------------
1 | yarn commitlint --edit $1
2 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | yarn lint
2 | yarn test:coverage
3 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | 20
2 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 100,
3 | "singleQuote": true,
4 | "trailingComma": "es5",
5 | "arrowParens": "always"
6 | }
7 |
--------------------------------------------------------------------------------
/.release-please-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | ".": "9.3.1"
3 | }
4 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## [9.3.1](https://github.com/lawnstarter/react-native-picker-select/compare/v9.3.0...v9.3.1) (2024-08-12)
4 |
5 |
6 | ### Bug Fixes
7 |
8 | * **types:** add prop testID to index.d.ts ([#605](https://github.com/lawnstarter/react-native-picker-select/issues/605)) ([3fbe1cf](https://github.com/lawnstarter/react-native-picker-select/commit/3fbe1cfa7681988bc6edb1f020be726c76269041))
9 |
10 | ## [9.3.0](https://github.com/lawnstarter/react-native-picker-select/compare/v9.2.0...v9.3.0) (2024-08-12)
11 |
12 |
13 | ### Features
14 |
15 | * apply custom styling to active dropdown item ([#609](https://github.com/lawnstarter/react-native-picker-select/issues/609)) ([4626a4e](https://github.com/lawnstarter/react-native-picker-select/commit/4626a4e595c2143020771dbb2fc7838dee8daa83)), closes [#608](https://github.com/lawnstarter/react-native-picker-select/issues/608)
16 |
17 | ## [9.2.0](https://github.com/lawnstarter/react-native-picker-select/compare/v9.1.3...v9.2.0) (2024-07-26)
18 |
19 |
20 | ### Features
21 |
22 | * add prop dropdownItemStyle ([#600](https://github.com/lawnstarter/react-native-picker-select/issues/600)) ([b5f19ad](https://github.com/lawnstarter/react-native-picker-select/commit/b5f19ad02a7cb06d00dd681f54358d2a21712262))
23 |
24 | ## [9.1.3](https://github.com/lawnstarter/react-native-picker-select/compare/v9.1.2...v9.1.3) (2024-04-01)
25 |
26 |
27 | ### Documentation
28 |
29 | * **readme:** update README.md ([#331](https://github.com/lawnstarter/react-native-picker-select/issues/331)) ([36bca74](https://github.com/lawnstarter/react-native-picker-select/commit/36bca74fecaa66bcf17b65a360e423db692c3f13))
30 |
31 | ## [9.1.2](https://github.com/lawnstarter/react-native-picker-select/compare/v9.1.1...v9.1.2) (2024-04-01)
32 |
33 |
34 | ### Bug Fixes
35 |
36 | * **types:** missing type definition for 'donePressed' parameter in 'onClose' callback ([#545](https://github.com/lawnstarter/react-native-picker-select/issues/545)) ([d39f880](https://github.com/lawnstarter/react-native-picker-select/commit/d39f880d1d866a81a84b5b1dd70e00f6001a3572))
37 |
38 | ## [9.1.1](https://github.com/lawnstarter/react-native-picker-select/compare/v9.1.0...v9.1.1) (2024-03-29)
39 |
40 | ### Build System
41 |
42 | - **package:** release 9.1.1 ([f7c7646](https://github.com/lawnstarter/react-native-picker-select/commit/f7c764608f58598422b92fee19d3a96e5124c508))
43 |
44 | ## 9.1.0
45 |
46 | ##### Bugfix
47 |
48 | - Improve comparison in getSelectedItem (#543)
49 |
50 | ## 9.0.1
51 |
52 | ##### Bugfix
53 |
54 | - Correct types for PickerStyle interface (#528)
55 | - Fix Icon prop type (#529)
56 |
57 | ## 9.0.0
58 |
59 | ##### Breaking Changes
60 |
61 | - Moved `react-native-picker` to peerDependencies and upgraded to ^2.4.0 (#523)
62 |
63 | ---
64 |
65 | ## 8.1.0
66 |
67 | ##### New
68 |
69 | - Dark mode support (#513)
70 | - donePressed on onClose callback (#319)
71 | - testID available on each item (#498)
72 |
73 | ##### Bugfix
74 |
75 | - Fixed reliance on now-private dep (#513)
76 |
77 | ---
78 |
79 | ## 8.0.4
80 |
81 | ##### Bugfix
82 |
83 | - Moved dep to @react-native-picker/picker
84 |
85 | ---
86 |
87 | ## 8.0.3
88 |
89 | ##### Bugfix
90 |
91 | - Fix `Cannot update component inside function` error (#346)
92 |
93 | ---
94 |
95 | ## 8.0.2
96 |
97 | ##### Bugfix
98 |
99 | - Add `fixAndroidTouchableBug` prop (#354)
100 |
101 | ---
102 |
103 | ## 8.0.1
104 |
105 | ##### Bugfix
106 |
107 | - Locked @react-native-community/picker to 1.6.0 to fix Expo issues
108 | - Add togglePicker method to Picker component typescript definition (#360)
109 | - Fix wrong PickerProps import in index.d.ts (#352)
110 | - Fixed inputWeb to be a TextStyle, not ViewStyle (#365)
111 |
112 | ---
113 |
114 | ## 8.0.0
115 |
116 | ##### Breaking Changes
117 |
118 | - Now using [@react-native-community/picker](https://github.com/react-native-community/react-native-picker#readme) under the hood (#340). For that reason, this library now requires React Native 0.60 or above. If using Expo, SDK38 or above is required.
119 | - Replaced item prop `displayValue` with `inputLabel` (#336)
120 |
121 | ##### New
122 |
123 | - Added web support (#316)
124 |
125 | ---
126 |
127 | ## 7.0.0
128 |
129 | ##### Breaking Changes
130 |
131 | - Deprecated prop `hideDoneBar` has been removed
132 | - Deprecated prop `placeholderTextColor` has been removed
133 | - Type definitions rewritten (#305)
134 |
135 | ##### Chore
136 |
137 | - Remove deprecated ColorPropType
138 |
139 | ---
140 |
141 | ### 6.6.0
142 |
143 | ##### New
144 |
145 | - Updated touchables to all be all TouchableOpacity (with override props available)
146 | - Done text now animates on depress like native select dialog (#215)
147 |
148 | ---
149 |
150 | ### 6.5.1
151 |
152 | ##### Bugfix
153 |
154 | - Update iOS colors (#281)
155 |
156 | ---
157 |
158 | ### 6.5.0
159 |
160 | ##### New
161 |
162 | - If an item has the `displayValue` property set to true, the TextInput shows the item `value` instead of the item `label` (#279)
163 |
164 | ---
165 |
166 | ### 6.4.0
167 |
168 | ##### New
169 |
170 | - Opened up `onOpen` prop to now support Android when in headless or `useNativeAndroidPickerStyle={false}` mode
171 |
172 | ---
173 |
174 | ### 6.3.4
175 |
176 | ##### Bugfix
177 |
178 | - Fix for `onDonePress` regression (#236)
179 | - "Done" Text element now set to `allowFontScaling={false}` (#247)
180 |
181 | ---
182 |
183 | ### 6.3.3
184 |
185 | ##### Chore
186 |
187 | - Split off styles into separate file
188 |
189 | ---
190 |
191 | ### 6.3.2
192 |
193 | ##### Bugfix
194 |
195 | - Update typescript definition file to add `InputAccessoryView`
196 |
197 | ---
198 |
199 | ### 6.3.1
200 |
201 | ##### Bugfix
202 |
203 | - Fix Done button on iPad (#209)
204 |
205 | ---
206 |
207 | ### 6.3.0
208 |
209 | ##### New
210 |
211 | - Added a prop called `InputAccessoryView` to allow a custom component to replace the InputAccessoryView on iOS. View the [snack](https://snack.expo.io/@lfkwtz/react-native-picker-select) to see examples on how this can be customized. As a result of this change, the `hideDoneBar` prop has been deprecated.
212 | - iOS modal window now correctly resizes on orientation change
213 | - `defaultStyles` are now exported
214 |
215 | ---
216 |
217 | ### 6.2.0
218 |
219 | ##### New
220 |
221 | - Supports an empty `items` array (#161)
222 |
223 | ---
224 |
225 | ### 6.1.1
226 |
227 | ##### Bugfix
228 |
229 | - Replaced setTimeouts with callbacks for arrow buttons (#177)
230 |
231 | ---
232 |
233 | ### 6.1.0
234 |
235 | ##### New
236 |
237 | - Opened up `placeholder` on style object for modification (#119) (#155). The `placeholderTextColor` prop is now deprecated, as this style object allows for additional properties.
238 |
239 | ---
240 |
241 | ## 6.0.0
242 |
243 | #### Breaking Changes
244 |
245 | - In order to make this component less opinionated, especially in terms of style, we have removed the default dropdown arrow icon in leiu of a more flexible `Icon` prop which will render a component - allowing you to insert your own css, image, svg, or icon from any library of your choosing. Due to this change, the `noIcon` prop has been removed. To replicate the arrow from previous versions, see the [last example](example/example.js) / see the styling section in the README for more details.
246 | - In Android, we no longer insert a psuedo-underline by default - as the default input style in React Native sets the underline color to transparent since [this PR](https://github.com/facebook/react-native/commit/a3a98eb1c7fa0054a236d45421393874ce8ce558) - which landed in 0.56. You can add this back in fairly easily, either by using the `textInputProps` prop or by adding a border on one of the wrapping container elements - all depending on your personal usage of the component.
247 | - Some of the default styles of the iOS "Done bar" have been tweaked and streamlined
248 | - if using useNativeAndroidPickerStyle={false}, the outer container is now only `headlessAndroidContainer` without `viewContainer` wrapping it
249 |
250 | ---
251 |
252 | ### 5.2.5
253 |
254 | ##### Bugfix
255 |
256 | - Fix headless Android onValueChange trigger on render (#141)
257 |
258 | ---
259 |
260 | ### 5.2.4
261 |
262 | #### Bugfix
263 |
264 | - Fix TypeError (#139)
265 |
266 | ---
267 |
268 | ### 5.2.3
269 |
270 | ##### Bugfix
271 |
272 | - Fixes Android headless mode trigger area (#122)
273 |
274 | ---
275 |
276 | ### 5.2.2
277 |
278 | ##### Bugfix
279 |
280 | - Fixes unnecessary renders (#129)
281 |
282 | ---
283 |
284 | ### 5.2.1
285 |
286 | ##### Bugfix
287 |
288 | - Fixes keyboard not dismissing on iOS
289 |
290 | ---
291 |
292 | ### 5.2.0
293 |
294 | ##### New
295 |
296 | - Added `onOpen` and `onClose` callbacks (iOS only)
297 |
298 | ---
299 |
300 | ### 5.1.1
301 |
302 | ##### New
303 |
304 | - Opened up headlessAndroidPicker and chevronContainer on style object for modification
305 |
306 | ---
307 |
308 | ### 5.1.0
309 |
310 | ##### New
311 |
312 | - Added `useNativeAndroidPickerStyle` prop. See README for more details.
313 |
314 | ##### Bugfix
315 |
316 | - Fixed Android headless mode showing selected value outside of View (#83)
317 |
318 | ---
319 |
320 | ### 5.0.1
321 |
322 | ##### Bugfix
323 |
324 | - Fixed `TouchableWithoutFeedback` warning
325 |
326 | ---
327 |
328 | ## 5.0.0
329 |
330 | #### Breaking Changes
331 |
332 | - `styles.placeholderColor` has been replaced with `placeholderTextColor`
333 | - `mode` prop is now accessible via `pickerProps`
334 | - `animationType` prop is now accessible via `modalProps` (see warning in README)
335 |
336 | ##### New
337 |
338 | - Default placeholder now includes default `color` of #9EA0A4
339 | - `pickerProps`, `modalProps`, and `textInputProps` have been added (see README)
340 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## How to contribute to react-native-picker-select
2 |
3 | #### **Did you write a patch that fixes a bug?**
4 |
5 | - Ensure that you link your PR to an open issue. If one is not open, use the "Bug report" template to create one.
6 |
7 | #### **Do you intend to add a new feature or change an existing one?**
8 |
9 | - First create an issue using the "Feature request" template and make a note that you intend to make this change.
10 |
11 | - Before opening the PR, please wait for a response from our team.
12 |
13 | #### **Looking for inspiration?**
14 |
15 | - See the [Feature Requests](https://github.com/lawnstarter/react-native-picker-select/projects/1) board and feel free to submit a PR for anything in the "To do" column.
16 |
17 | - If you're interested in working on anything in the "Under consideration" column - please first respond to the issue with your ideas on how you'd implement the feature.
18 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) LawnStarter
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # react-native-picker-select
2 |
3 | [](https://badge.fury.io/js/react-native-picker-select)
4 | [](https://www.npmjs.com/package/react-native-picker-select)
5 | [](https://codeclimate.com/github/lawnstarter/react-native-picker-select/test_coverage)
6 | [](https://github.com/lawnstarter/react-native-picker-select/actions/workflows/build.yml)
7 |
8 | A Picker component for React Native which emulates the native `