From 3c05ab41be94c962c48bf11f2e12d5235e19d790 Mon Sep 17 00:00:00 2001 From: Javi Velasco Date: Sun, 20 Sep 2015 23:32:38 +0200 Subject: [PATCH] Finish components ES6 Rewrite --- components/fieldset/index.cjsx | 112 --------------------------------- 1 file changed, 112 deletions(-) delete mode 100644 components/fieldset/index.cjsx diff --git a/components/fieldset/index.cjsx b/components/fieldset/index.cjsx deleted file mode 100644 index e0eeb6c3..00000000 --- a/components/fieldset/index.cjsx +++ /dev/null @@ -1,112 +0,0 @@ -### -@todo -### - -# -- Components -Autocomplete = require './autocomplete' -Dropdown = require './dropdown' -Input = require './input' -Switch = require './switch' -# -- Constants -TYPE = - AUTOCOMPLETE: 'autocomplete' - CHECKBOX : 'checkbox' - DROPDOWN : 'dropdown' - LABEL : 'label' - RADIO : 'radio' - SWITCH : 'switch' - -module.exports = React.createClass - - # -- States & Properties - propTypes: - attributes : React.PropTypes.array - className : React.PropTypes.string - label : React.PropTypes.string - value : React.PropTypes.any - onChange : React.PropTypes.func - - getDefaultProps: -> - attributes : [] - className : '' - - getInitialState: -> - attributes : @props.attributes - type : _determineType @props.attributes - - # -- Lifecycle - componentWillReceiveProps: (next_props) -> - if attributes = next_props.attributes - @setState attributes: attributes, type: _determineType attributes - @setValue next_props.value or @props.value - - componentDidUpdate: -> - if @state.type is TYPE.RADIO - no_active = true - no_active = false for key, ref of @refs when ref.getValue?() is true - @refs[default].setValue true if no_active and default = Object.keys(@refs)?[0] - - # -- Events - onChange: (event) -> - if @state.type is TYPE.RADIO - for ref, el of @refs when el.refs.input.getDOMNode() isnt event.target - el.setValue false - - is_valid = true - value = @getValue() - for attr in @state.attributes when attr.required and value[attr.ref]?.trim() is '' - is_valid = false - @refs[attr.ref].setError? 'Required field' - break - setTimeout (=> @props.onChange event, @), 10 if @props.onChange? - - # -- Render - render: -> -
- { if @props.label } - { - for attribute, index in @state.attributes - if attribute.type is TYPE.LABEL - - else if attribute.type is TYPE.AUTOCOMPLETE - - else if attribute.type is TYPE.DROPDOWN - - else if attribute.type is TYPE.SWITCH - - else - - } - { @props.children } -
- - # -- Extends - clean: -> - instance.setValue? undefined for key, instance of @refs - - getValue: -> - value = {} - if @state.type isnt TYPE.RADIO - value[ref] = input.getValue() for ref, input of @refs when input.getValue? - else - value = ref for ref, input of @refs when input.getValue?() is true - value - - setValue: (data = {}) -> - if data instanceof Object - @refs[key]?.setValue? value for key, value of data - else - @refs[key].setValue? key is data for key of @refs - -# -- Internal methods -_determineType = (attributes) -> - type = '' - group_radio = true - group_checkbox = true - for attribute in attributes when attribute.type isnt TYPE.LABEL - group_radio = false if attribute.type isnt TYPE.RADIO - group_checkbox = false if attribute.type isnt TYPE.CHECKBOX - type = TYPE.RADIO if group_radio - type = TYPE.CHECKBOX if group_checkbox - type