diff --git a/package.json b/package.json index 3b39e71..4613e1d 100644 --- a/package.json +++ b/package.json @@ -70,5 +70,5 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "version": "0.9.10" + "version": "1.0.0" } diff --git a/src/Form.js b/src/Form.js index 5ad0090..81d0b7f 100644 --- a/src/Form.js +++ b/src/Form.js @@ -49,8 +49,8 @@ export class Form extends React.Component{ key: child.ref || child.type+i, fieldRef : child.ref, ref: child.ref, - onFocus:this.handleFieldFocused.bind(this), - onChange:this.handleFieldChange.bind(this, child.ref) + onFocus: this.handleFieldFocused.bind(this), + onChange: this.handleFieldChange.bind(this, child.ref) } )); }, this); diff --git a/src/fields/CountDownField.ios.js b/src/fields/CountDownField.ios.js index 7a1459f..2e4a83b 100644 --- a/src/fields/CountDownField.ios.js +++ b/src/fields/CountDownField.ios.js @@ -92,7 +92,7 @@ export class CountDownField extends React.Component{ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/fields/DatePickerField.android.js b/src/fields/DatePickerField.android.js index d47ba69..1f19f45 100644 --- a/src/fields/DatePickerField.android.js +++ b/src/fields/DatePickerField.android.js @@ -90,7 +90,7 @@ export class DatePickerField extends React.Component{ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/fields/DatePickerField.ios.js b/src/fields/DatePickerField.ios.js index 043e064..fae1101 100644 --- a/src/fields/DatePickerField.ios.js +++ b/src/fields/DatePickerField.ios.js @@ -88,7 +88,7 @@ export class DatePickerField extends React.Component{ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/fields/InputField.ios.js b/src/fields/InputField.ios.js index f5d50a1..34f1c7a 100644 --- a/src/fields/InputField.ios.js +++ b/src/fields/InputField.ios.js @@ -32,9 +32,9 @@ export class InputField extends React.Component{ this.props.style ]} containerStyle={[formStyles.fieldContainer, - formStyles.horizontalContainer, - this.props.containerStyle, - ]} + formStyles.horizontalContainer, + this.props.containerStyle, + ]} /> ) } @@ -65,7 +65,7 @@ let formStyles = StyleSheet.create({ textAlign: 'right' }, multiline:{ - lineHeight: 32, + lineHeight: 45, fontSize: 34/2, paddingBottom:10 }, @@ -98,8 +98,7 @@ let formStyles = StyleSheet.create({ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32, - + lineHeight: 45, }, input:{ paddingLeft: 10, diff --git a/src/fields/LinkField.android.js b/src/fields/LinkField.android.js index 36acb52..0f4c861 100644 --- a/src/fields/LinkField.android.js +++ b/src/fields/LinkField.android.js @@ -38,6 +38,6 @@ let formStyles = StyleSheet.create({ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, }); diff --git a/src/fields/LinkField.ios.js b/src/fields/LinkField.ios.js index 786801b..853f81a 100644 --- a/src/fields/LinkField.ios.js +++ b/src/fields/LinkField.ios.js @@ -39,7 +39,7 @@ let formStyles = StyleSheet.create({ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32, + lineHeight: 45, flex:2 }, }); diff --git a/src/fields/PickerField.android.js b/src/fields/PickerField.android.js index e192537..070747b 100644 --- a/src/fields/PickerField.android.js +++ b/src/fields/PickerField.android.js @@ -91,7 +91,7 @@ export class PickerField extends React.Component{ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/fields/PickerField.ios.js b/src/fields/PickerField.ios.js index cfa1aec..7fa09df 100644 --- a/src/fields/PickerField.ios.js +++ b/src/fields/PickerField.ios.js @@ -89,7 +89,7 @@ export class PickerField extends React.Component{ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/fields/SwitchField.ios.js b/src/fields/SwitchField.ios.js index ac72a76..124b660 100644 --- a/src/fields/SwitchField.ios.js +++ b/src/fields/SwitchField.ios.js @@ -55,7 +55,7 @@ export class SwitchField extends React.Component{ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, }); diff --git a/src/fields/TimePickerField.android.js b/src/fields/TimePickerField.android.js index fe26bdc..79c2f7d 100644 --- a/src/fields/TimePickerField.android.js +++ b/src/fields/TimePickerField.android.js @@ -92,7 +92,7 @@ export class TimePickerField extends React.Component{ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/fields/TimePickerField.ios.js b/src/fields/TimePickerField.ios.js index e26b5c4..252c4fc 100644 --- a/src/fields/TimePickerField.ios.js +++ b/src/fields/TimePickerField.ios.js @@ -92,7 +92,7 @@ export class TimePickerField extends React.Component{ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/lib/DatePickerComponent.android.js b/src/lib/DatePickerComponent.android.js index 422bf80..cc3d398 100644 --- a/src/lib/DatePickerComponent.android.js +++ b/src/lib/DatePickerComponent.android.js @@ -10,6 +10,10 @@ import {Field} from './Field'; export class DatePickerComponent extends React.Component{ constructor(props){ super(props); + if (props.date) { + // Ensure initial value is retrieved in Form.getData() + if(this.props.onChange) this.props.onChange(props.date); + } this.state = { date: props.date? new Date(props.date) :'', isPickerVisible: false @@ -176,7 +180,7 @@ import {Field} from './Field'; paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/lib/DatePickerComponent.ios.js b/src/lib/DatePickerComponent.ios.js index 459c89d..059d3fd 100644 --- a/src/lib/DatePickerComponent.ios.js +++ b/src/lib/DatePickerComponent.ios.js @@ -10,6 +10,10 @@ import {Field} from './Field'; export class DatePickerComponent extends React.Component{ constructor(props){ super(props); + if (props.date) { + // Ensure initial value is retrieved in Form.getData() + if(this.props.onChange) this.props.onChange(props.date); + } this.state = { date: props.date? new Date(props.date) : '', isPickerVisible: false @@ -41,6 +45,9 @@ export class DatePickerComponent extends React.Component{ // this.refs.picker.measure(this.getPickerLayout.bind(this)); + _isPickerVisible() { + return this.state.isPickerVisible + } _togglePicker(event){ this.setState({isPickerVisible:!this.state.isPickerVisible}); @@ -107,7 +114,7 @@ export class DatePickerComponent extends React.Component{ - {(this.state.isPickerVisible)? + {(this.props.showing)? pickerWrapper : null } @@ -204,7 +211,7 @@ let formStyles = StyleSheet.create({ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/lib/Field.js b/src/lib/Field.js index 3171fa8..94def20 100644 --- a/src/lib/Field.js +++ b/src/lib/Field.js @@ -3,7 +3,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import {HelpText} from './HelpText'; -let { View, StyleSheet, Text, TouchableHighlight} = require('react-native'); +let { View, StyleSheet, Text, TouchableHighlight, TouchableOpacity} = require('react-native'); export class Field extends React.Component{ render(){ @@ -14,14 +14,15 @@ export class Field extends React.Component{ : null); if(this.props.onPress){ - return + return {this.props.children} {fieldHelpText} - + } - return + return {this.props.children} {fieldHelpText} ; diff --git a/src/lib/InputComponent.js b/src/lib/InputComponent.js index 4f65d8f..d9bf6d0 100644 --- a/src/lib/InputComponent.js +++ b/src/lib/InputComponent.js @@ -17,6 +17,11 @@ export class InputComponent extends React.Component{ constructor(props){ super(props); + if (props.value) { + // Ensure initial value is retrieved in Form.getData() + if(this.props.onChange) this.props.onChange(props.value, this.valid); + } + this.triggerValidation = this.triggerValidation.bind(this); // this.validate = this.validate.bind(this) this.validate(props.value); diff --git a/src/lib/LinkComponent.js b/src/lib/LinkComponent.js index c2c0d23..931c21e 100644 --- a/src/lib/LinkComponent.js +++ b/src/lib/LinkComponent.js @@ -8,6 +8,10 @@ import {Field} from './Field'; export class LinkComponent extends React.Component{ constructor(props){ super(props); + if (props.value) { + // Ensure initial value is retrieved in Form.getData() + if(this.props.onChange) this.props.onChange(props.value, this.valid); + } this.state = { } } diff --git a/src/lib/PickerComponent.android.js b/src/lib/PickerComponent.android.js index e227ce7..1d1a5ad 100644 --- a/src/lib/PickerComponent.android.js +++ b/src/lib/PickerComponent.android.js @@ -10,6 +10,10 @@ var PickerItem = Picker.Item; export class PickerComponent extends React.Component{ constructor(props){ super(props); + if (props.value) { + // Ensure initial value is retrieved in Form.getData() + if(this.props.onChange) this.props.onChange(props.value, this.valid); + } this.state = { value: props.value || props.label, } @@ -151,7 +155,7 @@ var PickerItem = Picker.Item; paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/lib/PickerComponent.ios.js b/src/lib/PickerComponent.ios.js index fcbfd62..2eb4af0 100644 --- a/src/lib/PickerComponent.ios.js +++ b/src/lib/PickerComponent.ios.js @@ -11,6 +11,10 @@ var PickerItem = Picker.Item; export class PickerComponent extends React.Component{ constructor(props){ super(props); + if (props.value) { + // Ensure initial value is retrieved in Form.getData() + if(this.props.onChange) this.props.onChange(props.value, this.valid); + } this.state = { value: props.value, isPickerVisible: false @@ -144,7 +148,7 @@ export class PickerComponent extends React.Component{ - {(this.state.isPickerVisible)? + {(this.props.showing)? pickerWrapper : null } @@ -220,7 +224,7 @@ export class PickerComponent extends React.Component{ paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/lib/SwitchComponent.js b/src/lib/SwitchComponent.js index 80f978f..ac41780 100644 --- a/src/lib/SwitchComponent.js +++ b/src/lib/SwitchComponent.js @@ -8,6 +8,10 @@ import {Field} from './Field'; export class SwitchComponent extends React.Component{ constructor(props){ super(props); + if (props.value) { + // Ensure initial value is retrieved in Form.getData() + if(this.props.onChange) this.props.onChange(props.value, this.valid); + } this.state = { value: props.value, } @@ -40,6 +44,7 @@ export class SwitchComponent extends React.Component{ {this.props.label} @@ -106,7 +111,7 @@ SwitchComponent.propTypes = { paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10, diff --git a/src/lib/TimePickerComponent.android.js b/src/lib/TimePickerComponent.android.js index 36e7559..8821be4 100644 --- a/src/lib/TimePickerComponent.android.js +++ b/src/lib/TimePickerComponent.android.js @@ -10,6 +10,10 @@ import {Field} from './Field'; export class TimePickerComponent extends React.Component{ constructor(props){ super(props); + if (props.value) { + // Ensure initial value is retrieved in Form.getData() + if(this.props.onChange) this.props.onChange(props.value, this.valid); + } this.state = { date: props.date? new Date(props.date) :'', isPickerVisible: false @@ -167,7 +171,7 @@ import {Field} from './Field'; paddingLeft: 10, paddingRight: 10, justifyContent: 'center', - lineHeight: 32 + lineHeight: 45 }, input:{ paddingLeft: 10,