Skip to content

Instantly share code, notes, and snippets.

@chewmanfoo
Created December 29, 2015 21:00
Show Gist options
  • Select an option

  • Save chewmanfoo/414f1241c97cc7ffce05 to your computer and use it in GitHub Desktop.

Select an option

Save chewmanfoo/414f1241c97cc7ffce05 to your computer and use it in GitHub Desktop.
react form
# app/assets/javascripts/components/aws_account_form.js.coffee
@AwsAccountForm = React.createClass
getInitialState: ->
name: ''
description: ''
business_unit: ''
handleChange: (e) ->
name = e.target.name
@setState "#{ name }": e.target.value
valid: ->
@state.name && @state.description && @state.business_unit
handleSubmit: (e) ->
e.preventDefault()
$.post '', { aws_account: @state }, (data) =>
@props.handleNewAwsAccount data
@setState @getInitialState()
, 'JSON'
render: ->
React.DOM.form
className: 'form-inline'
onSubmit: @handleSubmit
React.DOM.div
className: 'form-group'
React.DOM.input
type: 'text'
className: 'form-control'
placeholder: 'Name'
name: 'name'
value: @state.name
onChange: @handleChange
React.DOM.div
className: 'row'
React.DOM.div
className: 'col-md-8'
React.DOM.div
className: 'form-group'
React.DOM.input
type: 'text'
className: 'form-control'
placeholder: 'Description'
name: 'description'
value: @state.description
onChange: @handleChange
React.DOM.div
className: 'row'
React.DOM.div
className: 'col-md-8'
React.DOM.div
className: 'form-group'
React.DOM.input
type: 'text'
className: 'form-control'
placeholder: 'Business Unit'
name: 'business_unit'
value: @state.business_unit
onChange: @handleChange
React.DOM.div
className: 'row'
React.DOM.div
className: 'col-md-8'
React.DOM.button
type: 'submit'
className: 'btn btn-primary'
disabled: !@valid()
'Create AWS Account'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment