UNPKG

ldx-widgets

Version:

widgets

62 lines (43 loc) 1.47 kB
React = require 'react' ReactDOM = require 'react-dom' {div} = React.DOM {Flux} = require 'delorean' _ = require 'lodash' AddValidationContext = React.createClass mixins: [Flux.mixins.storeListener] watchStores: ['validation'] childContextTypes: clearValidationError: React.PropTypes.func addValidationError: React.PropTypes.func getValidationStatus: React.PropTypes.func toggleValidationError: React.PropTypes.func getChildContext: -> { @clearValidationError @addValidationError @getValidationStatus @toggleValidationError } componentWillMount: -> @ref = @props.childProps?.ref or 'input' render: -> {factory, childProps, children} = @props props = _.assign {}, childProps, {ref: @ref} div { key: 'wrapper' }, children or factory(props) getInput: -> @refs[@ref] getInputEl: -> ReactDOM.findDOMNode(@refs[@ref]) clearValidationError: (inputId) -> @trigger 'clearValidationError', inputId addValidationError: (anchor, error, groupId) -> @trigger 'addValidationError', {anchor, error, groupId} getValidationStatus: (inputId) -> {errors, forceShowAllErrors} = @getStore 'validation' {error: errors[inputId], forceShowAllErrors} toggleValidationError: (inputId, status) -> @trigger 'toggleError', groupId: @inputId status: status isMouseOver: yes module.exports = React.createFactory(AddValidationContext)