'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
@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?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@ericelliott what "setEmail"and "setEditMode" would look like?