Sha256: e2b72d0c70fbee1d4a807937afc573d93d1209de980b4190b585ed8b9be640c6

Contents?: true

Size: 1.38 KB

Versions: 11

Compression:

Stored size: 1.38 KB

Contents

class ExampleRow extends React.Component {
  render() {
    const {ModelInput} = Rev.Components

    return <div><ModelInput model={this.props.model} field="name" /></div>
  }
}

class ExampleControls extends React.Component {
  render() {
    return <button onClick={this.addOne.bind(this)}>+</button>
  }

  addOne(e) {
    e.preventDefault()
    this.props.items.add({})
  }
}

class EchoModel extends Backbone.Model {
  get urlRoot() {
    return '/echo'
  }

  sync() {
    this.trigger('sync')
  }
}

Rev.registerExample('ModelHasManyInput', class ModelHasManyInputExample extends React.Component {

  static get mixins() {
    return [Backbone.Events]
  }

  constructor(props) {
    super(props)

    this.state = {
      model: new EchoModel(),
    }
  }

  render() {
    const {ModelForm, ModelHasManyInput} = Rev.Components

    return (
      <ModelForm model={this.state.model}>
        Model JSON: {JSON.stringify(this.state.model.attributes)}
        <ModelHasManyInput
          model={this.state.model}
          field="rows"
          rowComponentClass={ExampleRow}
          controlComponentClass={ExampleControls}
        />
        <button>Submit</button>
      </ModelForm>
    )
  }

  onChange() {
    this.forceUpdate()
  }

  componentDidMount() {
    this.listenTo(this.state.model, 'all', this.onChange.bind(this))
  }

  componentWillUnmount() {
    this.stopListening()
  }
})

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
revelry_core-0.1.24.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6
revelry_core-0.1.23.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6
revelry_core-0.1.22.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6
revelry_core-0.1.21.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6
revelry_core-0.1.20.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6
revelry_core-0.1.19.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6
revelry_core-0.1.18.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6
revelry_core-0.1.17.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6
revelry_core-0.1.16.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6
revelry_core-0.1.15.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6
revelry_core-0.1.14.0 app/assets/javascripts/revelry/examples/ModelHasManyInput.es6