Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/ui / src / inputs / TextBox / handlers / handleFocus.ts
Size: Mime:
import { isFunction } from 'exotic'
import { TextBoxProps, TextBoxState, TextBoxComponent } from '../typings'

/**
 * @extends TextBoxComponent @bound
 */
export function handleFocus(
  event: Event,
  props: TextBoxProps,
  state: TextBoxState
) {
  const { validationMethod, onFocus } = props

  // @todo @fixme on the instance being passed...
  if (isFunction(state.updateFocused)) {
    state.updateFocused(event, this)
  } else {
    console.warn('state should implement updateFocused')
  }

  // this.state.validateInput(event, this)
  if (isFunction(validationMethod)) {
    validationMethod(event)
  }
  if (isFunction(onFocus)) {
    onFocus(event)
  }

  // @todo this.state.valid().invalid()
  // Removes error highlight
  state.setIsValidInput(true)
}