'use strict';
const ENTER_KEY = 13;
const emailFactory = function ({
React,
setEmail,
setEditMode
} = {}) {
const EmailField = function (props) {
return {
propTypes: {
email: React.PropTypes.string,
isEditMode: React.PropTypes.bool
},
props,
onKeyUp (e) {
if (e.keyCode !== ENTER_KEY) return;
setEmail(e.target.value);
},
render () {
const isEditMode = this.props.isEditMode;
const email = this.props.email;
const displayStyle = {
display: isEditMode ? 'none' : 'block'
};
const editStyle = {
display: isEditMode ? 'block' : 'none'
};
return (
<div>
<p
onClick={ () => setEditMode(true) }
style = { displayStyle }
>{ email }
</p>
<input
type="email"
onKeyUp={ this.onKeyUp }
style = { editStyle }
placeholder = { email } />
</div>
);
}
};
};
return EmailField;
};
export default emailFactory;
Last active
January 8, 2025 09:50
-
-
Save ericelliott/7e05747b891673eb704b to your computer and use it in GitHub Desktop.
React - Complete Reusable Component
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@ericelliott I assume your intention is to use prototypal inheritance to inherit from React.Component (I've seen you make references to this elsewhere). Where does this actually happen?