forked from d-a-n/react-native-modal-picker
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 9c833fd
Showing
45 changed files
with
2,465 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
.idea |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
'use strict'; | ||
|
||
import React from 'react-native'; | ||
|
||
export default class BaseComponent extends React.Component { | ||
_bind(...methods) { | ||
methods.forEach( (method) => this[method] = this[method].bind(this) ); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
The MIT License (MIT) | ||
|
||
Copyright (c) 2016 Alex Spring | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# react-native-modal-picker | ||
A cross-platform (iOS / Android), selector/picker component for React Native that is highly customizable and supports sections. | ||
|
||
## Install | ||
|
||
```sh | ||
npm i react-native-modal-picker --save | ||
``` | ||
|
||
## Usage | ||
|
||
Here is an overview of the component usage. | ||
|
||
```jsx | ||
|
||
import SpringSelector from 'react-native-spring-selector' | ||
|
||
[..] | ||
|
||
class SampleApp extends Component { | ||
render() { | ||
|
||
let index = 0; | ||
const data = [ | ||
{ key: index++, section: true, label: 'Fruits' }, | ||
{ key: index++, label: 'Red Apples' }, | ||
{ key: index++, label: 'Cherries' }, | ||
{ key: index++, label: 'Cranberries' }, | ||
{ key: index++, label: 'Pink Grapefruit' }, | ||
{ key: index++, label: 'Raspberries' }, | ||
{ key: index++, section: true, label: 'Vegetables' }, | ||
{ key: index++, label: 'Beets' }, | ||
{ key: index++, label: 'Red Peppers' }, | ||
{ key: index++, label: 'Radishes' }, | ||
{ key: index++, label: 'Radicchio' }, | ||
{ key: index++, label: 'Red Onions' }, | ||
{ key: index++, label: 'Red Potatoes' }, | ||
{ key: index++, label: 'Rhubarb' }, | ||
{ key: index++, label: 'Tomatoes' } | ||
]; | ||
|
||
return ( | ||
<View style={{padding:40, flex:1}}> | ||
<SpringSelector | ||
data={data} | ||
initValue="Select something yummy!" | ||
onChange={(option)=>{ alert(`${option.label} (${option.key}) nom nom nom`) }} | ||
/> | ||
</View> | ||
); | ||
} | ||
} | ||
``` | ||
|
||
## Props | ||
|
||
* `data - []` required, array of objects with a unique key and label | ||
* `onChange - function` optional, callback function, when the users has selected an option | ||
* `initValue - string` optional, text that is initially shown on the button | ||
* `cancelText - string` optional, text of the cancel button | ||
* `selectStyle - object` optional, style definitions for the select element | ||
* `selectStyle - object` optional, style definitions for the select element | ||
* `optionStyle - object` optional, style definitions for the option element | ||
* `optionTextStyle - object` optional, style definitions for the option text element | ||
* `sectionStyle - object` optional, style definitions for the section element | ||
* `sectionTextStyle - object` optional, style definitions for the select text element | ||
* `cancelStyle - object` optional, style definitions for the cancel element | ||
* `cancelTextStyle - object` optional, style definitions for the cancel text element | ||
* `selectStyle - object` optional, style definitions for the select element | ||
* `overlayStyle - object` optional, style definitions for the overly/background element | ||
* `selectStyle - object` optional, style definitions for the select element | ||
|
||
|
||
## Demo | ||
|
||
<img src="https://raw.githubusercontent.com/d-a-n/react-native-modal-picker/master/docs/demo.gif" /> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
[ignore] | ||
|
||
# We fork some components by platform. | ||
.*/*.web.js | ||
.*/*.android.js | ||
|
||
# Some modules have their own node_modules with overlap | ||
.*/node_modules/node-haste/.* | ||
|
||
# Ugh | ||
.*/node_modules/babel.* | ||
.*/node_modules/babylon.* | ||
.*/node_modules/invariant.* | ||
|
||
# Ignore react and fbjs where there are overlaps, but don't ignore | ||
# anything that react-native relies on | ||
.*/node_modules/fbjs/lib/Map.js | ||
.*/node_modules/fbjs/lib/Promise.js | ||
.*/node_modules/fbjs/lib/fetch.js | ||
.*/node_modules/fbjs/lib/ExecutionEnvironment.js | ||
.*/node_modules/fbjs/lib/isEmpty.js | ||
.*/node_modules/fbjs/lib/crc32.js | ||
.*/node_modules/fbjs/lib/ErrorUtils.js | ||
|
||
# Flow has a built-in definition for the 'react' module which we prefer to use | ||
# over the currently-untyped source | ||
.*/node_modules/react/react.js | ||
.*/node_modules/react/lib/React.js | ||
.*/node_modules/react/lib/ReactDOM.js | ||
|
||
# Ignore commoner tests | ||
.*/node_modules/commoner/test/.* | ||
|
||
# See https://github.com/facebook/flow/issues/442 | ||
.*/react-tools/node_modules/commoner/lib/reader.js | ||
|
||
# Ignore jest | ||
.*/node_modules/jest-cli/.* | ||
|
||
# Ignore Website | ||
.*/website/.* | ||
|
||
[include] | ||
|
||
[libs] | ||
node_modules/react-native/Libraries/react-native/react-native-interface.js | ||
|
||
[options] | ||
module.system=haste | ||
|
||
munge_underscores=true | ||
|
||
module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub' | ||
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\)$' -> 'RelativeImageStub' | ||
|
||
suppress_type=$FlowIssue | ||
suppress_type=$FlowFixMe | ||
suppress_type=$FixMe | ||
|
||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-1]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) | ||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-1]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ | ||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy | ||
|
||
[version] | ||
0.21.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# OSX | ||
# | ||
.DS_Store | ||
|
||
# Xcode | ||
# | ||
build/ | ||
*.pbxuser | ||
!default.pbxuser | ||
*.mode1v3 | ||
!default.mode1v3 | ||
*.mode2v3 | ||
!default.mode2v3 | ||
*.perspectivev3 | ||
!default.perspectivev3 | ||
xcuserdata | ||
*.xccheckout | ||
*.moved-aside | ||
DerivedData | ||
*.hmap | ||
*.ipa | ||
*.xcuserstate | ||
project.xcworkspace | ||
|
||
# Android/IJ | ||
# | ||
.idea | ||
.gradle | ||
local.properties | ||
|
||
# node.js | ||
# | ||
node_modules/ | ||
npm-debug.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Simple Demo App | ||
|
||
This demo app demonstrates how to use this component. | ||
|
||
# Development | ||
|
||
Because the packager [does not support symlinks at the moment](https://github.com/facebook/react-native/issues/637), we have to use a custom nodemon workaround to use this app for development. After starting React Native use the following command to keep the module in sync. | ||
|
||
`nodemon nodemon.json` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
apply plugin: "com.android.application" | ||
|
||
import com.android.build.OutputFile | ||
|
||
/** | ||
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets | ||
* and bundleReleaseJsAndAssets). | ||
* These basically call `react-native bundle` with the correct arguments during the Android build | ||
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the | ||
* bundle directly from the development server. Below you can see all the possible configurations | ||
* and their defaults. If you decide to add a configuration block, make sure to add it before the | ||
* `apply from: "react.gradle"` line. | ||
* | ||
* project.ext.react = [ | ||
* // the name of the generated asset file containing your JS bundle | ||
* bundleAssetName: "index.android.bundle", | ||
* | ||
* // the entry file for bundle generation | ||
* entryFile: "index.android.js", | ||
* | ||
* // whether to bundle JS and assets in debug mode | ||
* bundleInDebug: false, | ||
* | ||
* // whether to bundle JS and assets in release mode | ||
* bundleInRelease: true, | ||
* | ||
* // whether to bundle JS and assets in another build variant (if configured). | ||
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants | ||
* // The configuration property is in the format 'bundleIn${productFlavor}${buildType}' | ||
* // bundleInFreeDebug: true, | ||
* // bundleInPaidRelease: true, | ||
* // bundleInBeta: true, | ||
* | ||
* // the root of your project, i.e. where "package.json" lives | ||
* root: "../../", | ||
* | ||
* // where to put the JS bundle asset in debug mode | ||
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug", | ||
* | ||
* // where to put the JS bundle asset in release mode | ||
* jsBundleDirRelease: "$buildDir/intermediates/assets/release", | ||
* | ||
* // where to put drawable resources / React Native assets, e.g. the ones you use via | ||
* // require('./image.png')), in debug mode | ||
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", | ||
* | ||
* // where to put drawable resources / React Native assets, e.g. the ones you use via | ||
* // require('./image.png')), in release mode | ||
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release", | ||
* | ||
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means | ||
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to | ||
* // date; if you have any other folders that you want to ignore for performance reasons (gradle | ||
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ | ||
* // for example, you might want to remove it from here. | ||
* inputExcludes: ["android/**", "ios/**"] | ||
* ] | ||
*/ | ||
|
||
apply from: "react.gradle" | ||
|
||
/** | ||
* Set this to true to create three separate APKs instead of one: | ||
* - A universal APK that works on all devices | ||
* - An APK that only works on ARM devices | ||
* - An APK that only works on x86 devices | ||
* The advantage is the size of the APK is reduced by about 4MB. | ||
* Upload all the APKs to the Play Store and people will download | ||
* the correct one based on the CPU architecture of their device. | ||
*/ | ||
def enableSeparateBuildPerCPUArchitecture = false | ||
|
||
/** | ||
* Run Proguard to shrink the Java bytecode in release builds. | ||
*/ | ||
def enableProguardInReleaseBuilds = false | ||
|
||
android { | ||
compileSdkVersion 23 | ||
buildToolsVersion "23.0.1" | ||
|
||
defaultConfig { | ||
applicationId "com.sampleapp" | ||
minSdkVersion 16 | ||
targetSdkVersion 22 | ||
versionCode 1 | ||
versionName "1.0" | ||
ndk { | ||
abiFilters "armeabi-v7a", "x86" | ||
} | ||
} | ||
splits { | ||
abi { | ||
enable enableSeparateBuildPerCPUArchitecture | ||
universalApk false | ||
reset() | ||
include "armeabi-v7a", "x86" | ||
} | ||
} | ||
buildTypes { | ||
release { | ||
minifyEnabled enableProguardInReleaseBuilds | ||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" | ||
} | ||
} | ||
// applicationVariants are e.g. debug, release | ||
applicationVariants.all { variant -> | ||
variant.outputs.each { output -> | ||
// For each separate APK per architecture, set a unique version code as described here: | ||
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits | ||
def versionCodes = ["armeabi-v7a":1, "x86":2] | ||
def abi = output.getFilter(OutputFile.ABI) | ||
if (abi != null) { // null for the universal-debug, universal-release variants | ||
output.versionCodeOverride = | ||
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode | ||
} | ||
} | ||
} | ||
} | ||
|
||
dependencies { | ||
compile fileTree(dir: "libs", include: ["*.jar"]) | ||
compile "com.android.support:appcompat-v7:23.0.1" | ||
compile "com.facebook.react:react-native:0.20.+" | ||
} |
Oops, something went wrong.