diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 99f7c655..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "airbnb", - "plugins": [ - "react", - "jsx-a11y", - "import" - ] -} \ No newline at end of file diff --git a/README.md b/README.md index 188fa0c3..eb2b800b 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,7 @@ module.exports = MyPicker; | hideIndicator | - | `boolean` | Hide indicator | | indicatorWidth | 1 | `number` | Indicator width | | backgroundColor | transparent | `string` | Wheel Picker background color | +| disabled | undefind | `bool` | Disable picker selection | # Time Picker diff --git a/index.js b/index.tsx similarity index 84% rename from index.js rename to index.tsx index 1ab8387d..e3fca0a9 100644 --- a/index.js +++ b/index.tsx @@ -1,8 +1,3 @@ -/** - * @prettier - * @flow - * */ - import WheelPicker from './src/WheelPicker' import TimePicker from './src/TimePicker' import DatePicker from './src/DatePicker' diff --git a/package.json b/package.json index bacbce5d..8872571c 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "react-native-wheel-picker-android", - "version": "2.0.6", + "version": "2.0.7", "description": "Simple Wheel Picker for Android to use with react-native", - "main": "index.js", + "main": "index.tsx", "repository": { "type": "git", - "url": "git+https://github.com/ElekenAgency/ReactNativeWheelPicker.git" + "url": "git+https://github.com/kalontech/ReactNativeWheelPicker.git" }, "keywords": [ "react-component", @@ -19,9 +19,9 @@ "author": "Artem Kosiakevych ", "license": "MIT", "bugs": { - "url": "https://github.com/ElekenAgency/ReactNativeWheelPicker/issues" + "url": "https://github.com/kalontech/ReactNativeWheelPicker/issues" }, - "homepage": "https://github.com/ElekenAgency/ReactNativeWheelPicker", + "homepage": "https://github.com/kalontech/ReactNativeWheelPicker", "dependencies": { "moment": "^2.22.0" } diff --git a/src/WheelPicker.android.js b/src/WheelPicker.android.js index a843ca04..a78fd4df 100644 --- a/src/WheelPicker.android.js +++ b/src/WheelPicker.android.js @@ -4,7 +4,7 @@ * */ import React from 'react' -import { requireNativeComponent } from 'react-native' +import { requireNativeComponent, View } from 'react-native' const WheelPickerView = requireNativeComponent('WheelPicker', null) @@ -20,13 +20,14 @@ type Props = { itemTextSize?: number, selectedItem?: number, backgroundColor?: string, - onItemSelected?: number => void + onItemSelected?: number => void, + disabled?: boolean, } export default class WheelPicker extends React.Component { static defaultProps = { style: { - width: 200, + width: 'auto', height: 150, }, } @@ -38,11 +39,15 @@ export default class WheelPicker extends React.Component { } render() { + const { isCyclic, data } = this.props return ( - + + 2 ? isCyclic : false} + onChange={this.onItemSelected} + /> + ) } } diff --git a/src/WheelPicker.ios.js b/src/WheelPicker.ios.js deleted file mode 100644 index af99f589..00000000 --- a/src/WheelPicker.ios.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * @prettier - * @flow - * */ - -import React from 'react' -import { requireNativeComponent, PickerIOS, Picker, Text } from 'react-native' - -type Props = { - data: Array, - selectedItem?: number, - onItemSelected?: number => void -} - -type State = { - selectedItem: number -} - -export default class WheelPicker extends React.Component { - static defaultProps = { - style: { - width: 200, - height: 150, - }, - } - - constructor(props: Props){ - super(props) - this.state = { - selectedItem: props.selectedItem - } - } - - componentDidUpdate(prevProps: Props, prevState: State){ - if (prevState.selectedItem !== this.props.selectedItem){ - this.setState({ selectedItem: this.props.selectedItem }) - } - } - - onItemSelected = (value: any, index: number) => { - if (this.props.onItemSelected) { - this.props.onItemSelected(index) - } - this.setState({selectedItem: index}) - } - - render() { - const data = this.props.data - if (!data || !data.length < 0) return null - return ( - - {this.props.data.map((i, index) => )} - - ) - } -} diff --git a/src/WheelPicker.ios.tsx b/src/WheelPicker.ios.tsx new file mode 100644 index 00000000..3d41e1df --- /dev/null +++ b/src/WheelPicker.ios.tsx @@ -0,0 +1,32 @@ +import React, { useState } from "react"; +import { Picker, View } from "react-native"; + +interface Props { + data: Array; + selectedItem?: number; + onItemSelected?: Function; + disabled?: boolean; +} +const WheelPicker: React.FC = props => { + const [selectedItem, setSelectedItem] = useState(props.selectedItem || 0); + const { data, onItemSelected, disabled } = props; + if (!data || data.length === 0) return null; + return ( + + { + if (onItemSelected) onItemSelected(index); + setSelectedItem(index); + }} + > + {data.map((i, index) => ( + + ))} + + + ); +}; + +export default WheelPicker;