@cerebral/inferno

Inferno view for Cerebral.

Install

npm install @cerebral/inferno inferno inferno-component inferno-create-element babel-plugin-inferno

Container

import Inferno from 'inferno'
import {Controller} from 'cerebral'
import {Container} from '@cerebral/inferno'
import App from './App'

const controller = Controller({
  state: {
    foo: 'bar'
  },
  signals: {
    clicked: []
  }
})

Inferno.render((
  <Container controller={controller}>
    <App />
  </Container>
), document.querySelector('#app'))

connect

import Inferno from 'inferno'
import Component from 'inferno-component'
import {connect} from '@cerebral/inferno'
import {state, signal} from 'cerebral/tags'

// Stateless
export default connect({
  foo: state`foo`,
  click: signal`clicked`
},
  function MyComponent ({foo, click}) {
    return <div onClick={() => click()}>{foo}</div>
  }
)

// Stateful
export default connect({
  foo: state`foo`,
  click: signal`clicked`
},
  class MyComponent extends Component {
    render () {
      return <div onClick={() => this.props.click()}>{this.props.foo}</div>
    }
  }
)