Skip to content

Instantly share code, notes, and snippets.

@andywer
Created July 2, 2018 16:24
Show Gist options
  • Select an option

  • Save andywer/255d640fc8e8e67feaa9b7e4321beb9f to your computer and use it in GitHub Desktop.

Select an option

Save andywer/255d640fc8e8e67feaa9b7e4321beb9f to your computer and use it in GitHub Desktop.
State Component
import State from 'new-state-component'
const setName = name => prevState => ({ ...prevState, name })
const RenameDialog = ({ prevName, onRename }) => {
return (
<State initial={{ name: prevName }}>
{(state, setState, memoize) => (
<RenameDialogUI
name={state.name}
onChange={memoize('onChange', event => setState(setName(event.target.value)))}
onSubmit={memoize('onSubmit', event => {
event.preventDefault()
onRename(state.name)
})}
/>
)}
</State>
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment