Skip to content

Commit 76bda43

Browse files
author
Artem
committed
Add disabled
1 parent b6517a8 commit 76bda43

7 files changed

+50
-84
lines changed

.eslintrc.json

-8
This file was deleted.

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ module.exports = MyPicker;
116116
| hideIndicator | - | `boolean` | Hide indicator |
117117
| indicatorWidth | 1 | `number` | Indicator width |
118118
| backgroundColor | transparent | `string` | Wheel Picker background color |
119+
| disabled | undefind | `bool` | Disable picker selection |
119120

120121
# Time Picker
121122

index.js renamed to index.tsx

-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
/**
2-
* @prettier
3-
* @flow
4-
* */
5-
61
import WheelPicker from './src/WheelPicker'
72
import TimePicker from './src/TimePicker'
83
import DatePicker from './src/DatePicker'

package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"name": "react-native-wheel-picker-android",
3-
"version": "2.0.6",
3+
"version": "2.0.7",
44
"description": "Simple Wheel Picker for Android to use with react-native",
5-
"main": "index.js",
5+
"main": "index.tsx",
66
"repository": {
77
"type": "git",
8-
"url": "git+https://github.com/ElekenAgency/ReactNativeWheelPicker.git"
8+
"url": "git+https://github.com/kalontech/ReactNativeWheelPicker.git"
99
},
1010
"keywords": [
1111
"react-component",
@@ -19,9 +19,9 @@
1919
"author": "Artem Kosiakevych <[email protected]>",
2020
"license": "MIT",
2121
"bugs": {
22-
"url": "https://github.com/ElekenAgency/ReactNativeWheelPicker/issues"
22+
"url": "https://github.com/kalontech/ReactNativeWheelPicker/issues"
2323
},
24-
"homepage": "https://github.com/ElekenAgency/ReactNativeWheelPicker",
24+
"homepage": "https://github.com/kalontech/ReactNativeWheelPicker",
2525
"dependencies": {
2626
"moment": "^2.22.0"
2727
}

src/WheelPicker.android.js

+12-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* */
55

66
import React from 'react'
7-
import { requireNativeComponent } from 'react-native'
7+
import { requireNativeComponent, View } from 'react-native'
88

99
const WheelPickerView = requireNativeComponent('WheelPicker', null)
1010

@@ -20,13 +20,14 @@ type Props = {
2020
itemTextSize?: number,
2121
selectedItem?: number,
2222
backgroundColor?: string,
23-
onItemSelected?: number => void
23+
onItemSelected?: number => void,
24+
disabled?: boolean,
2425
}
2526

2627
export default class WheelPicker extends React.Component<Props> {
2728
static defaultProps = {
2829
style: {
29-
width: 200,
30+
width: 'auto',
3031
height: 150,
3132
},
3233
}
@@ -38,11 +39,15 @@ export default class WheelPicker extends React.Component<Props> {
3839
}
3940

4041
render() {
42+
const { isCyclic, data } = this.props
4143
return (
42-
<WheelPickerView
43-
{...this.props}
44-
onChange={this.onItemSelected}
45-
/>
44+
<View pointerEvents={this.props.disabled ? "none" : "auto"}>
45+
<WheelPickerView
46+
{...this.props}
47+
isCyclic={data.length > 2 ? isCyclic : false}
48+
onChange={this.onItemSelected}
49+
/>
50+
</View>
4651
)
4752
}
4853
}

src/WheelPicker.ios.js

-59
This file was deleted.

src/WheelPicker.ios.tsx

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import React, { useState } from "react";
2+
import { Picker, View } from "react-native";
3+
4+
interface Props {
5+
data: Array<string>;
6+
selectedItem?: number;
7+
onItemSelected?: Function;
8+
disabled?: boolean;
9+
}
10+
const WheelPicker: React.FC<Props> = props => {
11+
const [selectedItem, setSelectedItem] = useState(props.selectedItem || 0);
12+
const { data, onItemSelected, disabled } = props;
13+
if (!data || data.length === 0) return null;
14+
return (
15+
<View pointerEvents={disabled ? "none" : "auto"}>
16+
<Picker
17+
{...props}
18+
selectedValue={data[selectedItem]}
19+
onValueChange={(value, index): void => {
20+
if (onItemSelected) onItemSelected(index);
21+
setSelectedItem(index);
22+
}}
23+
>
24+
{data.map((i, index) => (
25+
<Picker.Item key={index} label={i} value={i} />
26+
))}
27+
</Picker>
28+
</View>
29+
);
30+
};
31+
32+
export default WheelPicker;

0 commit comments

Comments
 (0)