Skip to content
Snippets Groups Projects
Select Git revision
  • 9fe1cf581c0b4e7c4dc3fb4c1324bcd8bd7277d7
  • master default protected
  • 1.1.0
  • 1.0.2
  • 1.0.1
  • 1.0.0
  • 1.0.0-beta8
  • 1.0.0-beta7
  • 1.0.0-beta6
  • 1.0.0-beta5
  • 1.0.0-beta4
  • 1.0.0-beta3
  • 1.0.0-beta2
  • 1.0.0-beta1
14 results

box-checkbox.jsx

Blame
  • address-input.jsx 1.89 KiB
    import React, { Component } from 'react';
    
    /**
     * Can display address field.
     */
    export default class AddressInput extends React.Component {
    
        /**
         * @param props
         */
        constructor (props) {
            super(props);
    
            /**
             * @type {string}
             */
            let type = 'text';
            if ( props.type ) {
                type = props.type;
            }
    
            /**
             * @type {
             *  {
             *      address: { id: number, address_id: string, company: string, name: string, address: string, postal_code: string, city: string, phone: string, email: string },
             *      field: string,
             *      name: string,
             *      type: string,
             *      value: string
             *  }
             * }
             */
            this.state = {
                address: props.address,
                field: props.field,
                name: props.name,
                type: type,
                value: props.value,
            };
    
            this.handleChange = this.handleChange.bind(this);
        }
    
        /**
         * @param props
         */
        componentWillReceiveProps(props){
            this.setState({
                address: props.address,
                field: props.field,
                name: props.name,
                value: props.value
            });
        }
    
        /**
         * @param {React.ChangeEvent<HTMLInputElement>} event
         */
        handleChange(event) {
            let state = this.state;
            state.value = event.target.value;
            state.address[state.field] = event.target.value;
            this.setState(state);
        }
    
        /**
         * @returns {*}
         */
        render () {
            let className = 'input-text regular-input';
    
            return (
                <input
                    className={className}
                    type={this.state.type}
                    name={this.state.name}
                    value={this.state.value}
                    required="required"
                    onChange={this.handleChange}
                />
            )
        }
    }