UNPKG

redux-auth

Version:

Complete token authentication system for react + redux.

68 lines (61 loc) 1.79 kB
import React, {PropTypes} from "react"; import * as Colors from "material-ui/styles/colors"; import TextField from "material-ui/TextField"; import AlertError from "material-ui/svg-icons/alert/error"; import Immutable from "immutable"; import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; class AuthInput extends React.Component { static propTypes = { label: PropTypes.string, value: PropTypes.string, errors: PropTypes.object }; static defaultProps = { label: "", value: null, errors: Immutable.fromJS([]) }; handleInput (ev) { ev.preventDefault(); this.props.onChange(ev.target.value); } renderErrorList () { if (this.props.errors.size) { return ( <div className='auth-error-message'> {this.props.errors.map((err, i) => { return ( <p className="inline-error-item" style={{paddingLeft: "20px", position: "relative", marginBottom: "28px"}} key={i}> <AlertError viewBox="0 0 50 50" color={Colors.red500} style={{ position: "absolute", left: 0, top: 0}} /> {this.props.floatingLabelText} {err} </p> ); })} </div> ); } else { return null; } } render () { return ( <MuiThemeProvider> <TextField fullWidth={true} id={this.props.className} {...this.props} errorText={this.renderErrorList()} onChange={this.handleInput.bind(this)} /> </MuiThemeProvider> ); } } export default AuthInput;