From d0808a4aa0db741cc4476d6e7b0b60628f5af0a6 Mon Sep 17 00:00:00 2001 From: FarahZaqout Date: Sun, 4 Nov 2018 10:01:04 +0200 Subject: [PATCH 1/2] creates inputfield component --- .../components/common/InputField/index.jsx | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 client/src/components/common/InputField/index.jsx diff --git a/client/src/components/common/InputField/index.jsx b/client/src/components/common/InputField/index.jsx new file mode 100644 index 0000000..5cb4420 --- /dev/null +++ b/client/src/components/common/InputField/index.jsx @@ -0,0 +1,35 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +// declares propTypes validation. +const propTypes = { + type: PropTypes.string.isRequired, + name: PropTypes.string.isRequired, + value: PropTypes.string, + placeholder: PropTypes.string, + className: PropTypes.string.isRequired, +}; + +const Input = props => { + const { type, name, value, placeholder, className } = props; + return ( + + ); +}; + +// assigns the propTypes to the component. +Input.propTypes = propTypes; + +// specifies the default propType value when not explicitly required. +Input.defaultProps = { + value: null, + placeholder: null, +}; + +export default Input; From 4267f9eb33ef8c45636d63e189f40b9ede5b137e Mon Sep 17 00:00:00 2001 From: FarahZaqout Date: Sun, 4 Nov 2018 13:47:14 +0200 Subject: [PATCH 2/2] adds onchange and onclick functions #31 --- .../components/common/InputField/index.jsx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/client/src/components/common/InputField/index.jsx b/client/src/components/common/InputField/index.jsx index 5cb4420..cb5552d 100644 --- a/client/src/components/common/InputField/index.jsx +++ b/client/src/components/common/InputField/index.jsx @@ -1,6 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; +// this line disables the windows end of line check for eslint. +/* eslint linebreak-style: ["error", "windows"] */ // declares propTypes validation. const propTypes = { type: PropTypes.string.isRequired, @@ -8,10 +10,21 @@ const propTypes = { value: PropTypes.string, placeholder: PropTypes.string, className: PropTypes.string.isRequired, + onChange: PropTypes.func, + onClick: PropTypes.func, }; const Input = props => { - const { type, name, value, placeholder, className } = props; + const { + type, + name, + value, + placeholder, + className, + onChange, + onClick, + } = props; + return ( { name={name} value={value} className={className} + onChange={onChange} + onClick={onClick} /> ); }; @@ -30,6 +45,8 @@ Input.propTypes = propTypes; Input.defaultProps = { value: null, placeholder: null, + onChange: null, + onClick: null, }; export default Input;