All files / src/lib EasyCustom.jsx

100% Statements 9/9
100% Branches 0/0
100% Functions 4/4
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34        2x 2x     2x       1x   1x       3x 3x 3x             3x            
import React, { Component } from 'react';
 
export default class EasyCustom extends Component {
  constructor(props) {
    super(props);
    this.state = {
      value: props.value
    }
    this.setValue = this.setValue.bind(this);
  }
 
  setValue(value) {
    this.setState({
      value
    }, () => this.props.setValue(value));
  }
 
  render() {
    const { value } = this.state;
    const { children } = this.props;
    const child = React.cloneElement(
      React.Children.only(children),
      {
        setParentValue: this.setValue,
        value
      }
    );
    return (
      <div className="easy-edit-component-wrapper">
        {child}
      </div>
    );
  }
}