Skip to content

Commit 03b3755

Browse files
authored
Merge pull request #33 from jav/master
Add indeterminate state.
2 parents e03aaf9 + c0aa045 commit 03b3755

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ checkedImage | PropTypes.element | true | Default image | Custom checked Im
100100
unCheckedImage | PropTypes.element | true | Default image | Custom unchecked Image
101101
isChecked | PropTypes.bool | false | false | checkbox checked state
102102
onClick | PropTypes.func.isRequired | false | | callback function
103+
disabled | PropTypes.bool | true | false | Disable the checkbox button
103104

104105
## Contribution
105106

img/ic_indeterminate_check_box.png

118 Bytes
Loading

index.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,13 @@ export default class CheckBox extends Component {
3232
unCheckedImage: PropTypes.element,
3333
onClick: PropTypes.func.isRequired,
3434
isChecked: PropTypes.bool.isRequired,
35+
isIndeterminate: PropTypes.bool.isRequired,
3536
checkBoxColor: PropTypes.string,
37+
disabled: PropTypes.bool,
3638
}
3739
static defaultProps = {
3840
isChecked: false,
41+
isIndeterminate: false,
3942
leftTextStyle: {},
4043
rightTextStyle: {}
4144
}
@@ -56,6 +59,9 @@ export default class CheckBox extends Component {
5659
}
5760

5861
_renderImage() {
62+
if (this.props.isIndeterminate){
63+
return this.props.indeterminateImage ? this.props.indeterminateImage : this.genCheckedImage();
64+
}
5965
if (this.props.isChecked) {
6066
return this.props.checkedImage ? this.props.checkedImage : this.genCheckedImage();
6167
} else {
@@ -64,7 +70,13 @@ export default class CheckBox extends Component {
6470
}
6571

6672
genCheckedImage() {
67-
var source = this.props.isChecked ? require('./img/ic_check_box.png') : require('./img/ic_check_box_outline_blank.png');
73+
var source;
74+
if (this.props.isIndeterminate) {
75+
source = require('./img/ic_indeterminate_check_box.png');
76+
}
77+
else {
78+
source = this.props.isChecked ? require('./img/ic_check_box.png') : require('./img/ic_check_box_outline_blank.png');
79+
}
6880

6981
return (
7082
<Image source={source} style={{tintColor: this.props.checkBoxColor}} />
@@ -77,6 +89,7 @@ export default class CheckBox extends Component {
7789
style={this.props.style}
7890
onPress={this.props.onClick}
7991
underlayColor='transparent'
92+
disabled={this.props.disabled}
8093
>
8194
<View style={styles.container}>
8295
{this._renderLeft()}

0 commit comments

Comments
 (0)