jsdf / coffee-react-transform

DEPRECATED – Provides React JSX support for Coffeescript
MIT License
432 stars 58 forks source link

Supporting other virtual doms. #55

Open DylanPiercey opened 9 years ago

DylanPiercey commented 9 years ago

Currently it's pretty easy to use something like https://github.com/dekujs/deku using coffee-react since you can do:

# @cjsx deku
Car = React.createClass
  render: ->
    <Vehicle {...@props.parts}>
      <Parts.FrontSeat />
      <Parts.BackSeat />
      <p>Which seat can I take? {@props.seat or 'none'}</p>
    </Vehicle>

Which becomes:

`/** @jsx deku */`
Car = React.createClass
  render: ->
    deku.createElement(Vehicle, React.__spread({},  @props.parts),
      deku.createElement(Parts.FrontSeat, null),
      deku.createElement(Parts.BackSeat, null),
      deku.createElement("p", null, "Which seat can I take? ", (@props.seat or 'none'))
    )

However you will notice "React.spread" which is obviously not compatible. Is it possible to have @jsx also modify React.spread?

jsdf commented 9 years ago

Looks like this is a regression, previously if you provided something like # @cjsx deku.dom it would just work.

DylanPiercey commented 9 years ago

Is it possible to fix or is it an issue with the jsx transform?

jsdf commented 9 years ago

It's a pretty simple fix, the correct value just needs to be output here: https://github.com/jsdf/coffee-react-transform/blob/master/src/serialiser.coffee#L105