From 34384ff75f331ac3ad4846da45d2c31016213426 Mon Sep 17 00:00:00 2001 From: sebastien gordano Date: Sun, 15 Mar 2020 11:48:51 +0100 Subject: [PATCH 1/2] Update to react-native-element 1.x + add parser func for int + keyboardType func + remove actions.pop() that's display state update errors in render --- .../react-native/components/foo/Create.js | 4 +- templates/react-native/components/foo/Form.js | 44 +++++++++++++------ templates/react-native/components/foo/List.js | 6 ++- templates/react-native/components/foo/Show.js | 8 +--- .../react-native/components/foo/Update.js | 4 +- templates/react-native/routes/foo.js | 1 - 6 files changed, 38 insertions(+), 29 deletions(-) diff --git a/templates/react-native/components/foo/Create.js b/templates/react-native/components/foo/Create.js index 9f504f3f..77c882a4 100644 --- a/templates/react-native/components/foo/Create.js +++ b/templates/react-native/components/foo/Create.js @@ -15,14 +15,12 @@ class Create extends Component { onSubmit = values => { this.props.create(values); - Actions.{{{lc}}}List(); + Actions.pop(); delayRefresh(); }; render() { - if (this.props.created) return Actions.pop(); - const {viewStyle, textStyle} = styles; return ( diff --git a/templates/react-native/components/foo/Form.js b/templates/react-native/components/foo/Form.js index b159ed13..11105fad 100644 --- a/templates/react-native/components/foo/Form.js +++ b/templates/react-native/components/foo/Form.js @@ -2,9 +2,7 @@ import React, { Component } from 'react'; import { Field, reduxForm } from 'redux-form'; import { View } from 'react-native'; import { - FormLabel, - FormInput, - FormValidationMessage, + Input, Button, } from 'react-native-elements'; @@ -12,29 +10,47 @@ import { class Form extends Component { renderField(data) { - const hasError = data.meta.touched && !!data.meta.error; + data.input.value = data.input.value.toString(); + + let keyboard = data.type === "number" ? keyboard = "numeric" : keyboard = "default" + return ( - - {data.input.name} - - - {hasError && - {data.meta.error} } ); } + intParser = (value) => { + if(isNaN(value)) { + value + } + else if(this.props.initialValues) { + if ((isNaN(value)) && (typeof value === 'string')){ + value + } else if(value) { + return parseInt(value, 10) + } else{ + value + } + } + else { + return parseInt(value, 10) + } + return value + } + render() { const {handleSubmit, mySubmit} = this.props; @@ -42,7 +58,7 @@ class Form extends Component { {{#each formFields}} + placeholder="{{{description}}}"{{#if required}} required={true}{{/if}} parse={this.intParser} value="" /> {{/each}}