source-react-coffee

0.2.2 • Public • Published

This is an attempt to make Facebook's react library more usable from CoffeeScript without escaping into JSX or painfully contorting syntax. Here's what I have so far.

{ReactComponentrenderComponent} = require 'react-coffee'
 
class TodoList extends Component
  render: ->
    @ul ->
      @li text for text in this.props.items
 
class TodoApp extends Component
  getInitialState: ->
    items: []
    text: ''
 
  onChange: (e) =>
    @setState(text: e.target.value)
 
  handleSubmit: (e) =>
    e.preventDefault()
 
    nextItems = @state.items.concat([@state.text])
    nextText = ''
    @setState(items: nextItemstext: nextText)
 
    @refs.nameInput.getDOMNode().focus()
 
  render: ->
    @div ->
      @h3 'TODO'
      @component TodoListitems: @state.items
      @form onSubmit: @handleSubmit->
        @input onChange: @onChangeref: 'nameInput'value: @state.text
        @button "Add ##{@state.items.length + 1}"
 
component = new TodoApp()
renderComponent(componentdocument.getElementById('app'))

Readme

Keywords

none

Package Sidebar

Install

npm i source-react-coffee

Weekly Downloads

0

Version

0.2.2

License

none

Last publish

Collaborators

  • tomashanacek
  • marekhrabe