From 4c7c1ceeac9ffa91118a6e1903a6f4deb3d34989 Mon Sep 17 00:00:00 2001 From: Mikko Koski Date: Fri, 24 Mar 2017 10:52:27 +0200 Subject: [PATCH] Add Input component --- src/components/AddImages/AddImages.example.js | 3 +- src/components/AddImages/AddImages.js | 2 +- src/components/CurrencyInput/CurrencyInput.js | 3 +- src/components/Discussion/Discussion.js | 4 +- src/components/Input/Input.css | 7 ++++ src/components/Input/Input.js | 41 +++++++++++++++++++ .../LocationAutocompleteInput.js | 3 +- src/components/index.js | 2 + .../ChangeAccountPasswordForm.js | 8 ++-- .../ChangePasswordForm/ChangePasswordForm.js | 6 +-- .../EditListingForm/EditListingForm.js | 14 +++++-- src/containers/LoginForm/LoginForm.js | 6 +-- .../PasswordForgottenForm.js | 4 +- src/containers/SignUpForm/SignUpForm.js | 10 ++--- src/index.css | 8 ---- 15 files changed, 86 insertions(+), 35 deletions(-) create mode 100644 src/components/Input/Input.css create mode 100644 src/components/Input/Input.js diff --git a/src/components/AddImages/AddImages.example.js b/src/components/AddImages/AddImages.example.js index 61c3373b..9264d78e 100644 --- a/src/components/AddImages/AddImages.example.js +++ b/src/components/AddImages/AddImages.example.js @@ -4,6 +4,7 @@ import { arrayMove } from 'react-sortable-hoc'; import { types } from '../../util/sdkLoader'; import AddImages from './AddImages'; import css from './AddImages.example.css'; +import { Input } from '../../components'; const getId = () => { return uniqueId(); @@ -64,7 +65,7 @@ class AddImagesTest extends Component {
- - * + * * */ import React, { Component, PropTypes } from 'react'; diff --git a/src/components/CurrencyInput/CurrencyInput.js b/src/components/CurrencyInput/CurrencyInput.js index fd2fd517..3b827ce7 100644 --- a/src/components/CurrencyInput/CurrencyInput.js +++ b/src/components/CurrencyInput/CurrencyInput.js @@ -13,6 +13,7 @@ import { truncateToSubUnitPrecision, } from '../../util/currency'; import * as propTypes from '../../util/propTypes'; +import { Input } from '../../components'; const allowedInputProps = allProps => { // Strip away props that are not passed to input element (or are overwritten) @@ -162,7 +163,7 @@ class CurrencyInput extends Component { const { currencyConfig, defaultValue, placeholder, intl } = this.props; const placeholderText = placeholder || intl.formatNumber(defaultValue, currencyConfig); return ( - )}
- { + const { className, ...rest } = props; + + const classes = classNames(css.root, className); + + return ; +}; + +const { string } = PropTypes; + +Input.defaultProps = { + className: null, +}; + +Input.propTypes = { + className: string, +}; + +/* + Creates a new Input component for Redux Form Field. + + Usage: + + ``` + + ``` +*/ +Input.fieldComponent = props => { + /* eslint-disable react/prop-types */ + const { input, type } = props; + /* eslint-enable react/prop-types */ + + return ; +}; + +export default Input; diff --git a/src/components/LocationAutocompleteInput/LocationAutocompleteInput.js b/src/components/LocationAutocompleteInput/LocationAutocompleteInput.js index 1858b6c5..cd5758d2 100644 --- a/src/components/LocationAutocompleteInput/LocationAutocompleteInput.js +++ b/src/components/LocationAutocompleteInput/LocationAutocompleteInput.js @@ -3,6 +3,7 @@ import { debounce } from 'lodash'; import classNames from 'classnames'; import * as propTypes from '../../util/propTypes'; import { getPlacePredictions, getPlaceDetails } from '../../util/googleMaps'; +import { Input } from '../../components'; import css from './LocationAutocompleteInput.css'; @@ -275,7 +276,7 @@ class LocationAutocompleteInput extends Component { return (
- { const { handleSubmit, pristine, submitting } = props; return ( - + - + - +

Delete account (module)

diff --git a/src/containers/ChangePasswordForm/ChangePasswordForm.js b/src/containers/ChangePasswordForm/ChangePasswordForm.js index 21800b25..baa01bd5 100644 --- a/src/containers/ChangePasswordForm/ChangePasswordForm.js +++ b/src/containers/ChangePasswordForm/ChangePasswordForm.js @@ -1,15 +1,15 @@ import React from 'react'; import { Field, reduxForm, propTypes as formPropTypes } from 'redux-form'; -import { Button } from '../../components'; +import { Button, Input } from '../../components'; const ChangePasswordForm = props => { const { handleSubmit, pristine, submitting } = props; return (
- + - + ); diff --git a/src/containers/EditListingForm/EditListingForm.js b/src/containers/EditListingForm/EditListingForm.js index d6dd2fd5..5d012dfd 100644 --- a/src/containers/EditListingForm/EditListingForm.js +++ b/src/containers/EditListingForm/EditListingForm.js @@ -11,7 +11,13 @@ import { autocompleteSearchRequired, autocompletePlaceSelected, } from '../../util/validators'; -import { AddImages, CurrencyInput, LocationAutocompleteInput, Button } from '../../components'; +import { + AddImages, + CurrencyInput, + LocationAutocompleteInput, + Button, + Input, +} from '../../components'; import css from './EditListingForm.css'; const ACCEPT_IMAGES = 'image/*'; @@ -39,7 +45,7 @@ const enhancedField = Comp => { } else if (Comp === 'textarea') { component =