Skip to content

Instantly share code, notes, and snippets.

@pragmaticlogic
Last active August 29, 2015 14:21
Show Gist options
  • Save pragmaticlogic/0cf04d1a62fd5a314af8 to your computer and use it in GitHub Desktop.
Save pragmaticlogic/0cf04d1a62fd5a314af8 to your computer and use it in GitHub Desktop.
onKeyDownHandler
var onKeyDownHandler = ((event) => {
//Impure
var element = this.refs.searchText.getDOMNode()
var focusElement = ((value) => { this.refs.searchText.getDOMNode().value = '' }).bind(this)
var showResult = value => { Navigate(`/dashboard/${value}`) }
//Pure
var isInputEmpty = R.eq('')
var checkInput = R.compose(isInputEmpty, R.trim)
var search = R.ifElse(checkInput, focusElement, showResult)
var getKeyCodePressed = event => event.keyCode
var handleNonEnterKeyPressed = evt => val => { return }
var handleEnterKeyPressed = evt => val => { search(val) } //impure
var isEnterPressed = R.eq(13)
var checkEnterKeyPressed = R.compose(isEnterPressed, getKeyCodePressed)
var handleKeyPressed = R.ifElse(checkEnterKeyPressed, handleEnterKeyPressed, handleNonEnterKeyPressed)
var handleEvent = handleKeyPressed(event)
//Kick things off
var text = element.value
handleEvent(text)
}).bind(context)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment