Logic.js 656 Bytes
import _                        from 'lodash';
import React, { Component }     from 'react';


const instance = (value) => (
  _.isFunction(value) ? value() : (value || null)
);


export class If extends Component {
  
  render() {
    return this.props.if ? instance(this.props.then) : instance(this.props.else);
  };
  
};


export class Case extends Component {

  render() {
    const val = this.props.switch;
    for(let i = 0; i < 999; ++i) {
      if(this.props['case' + i] === undefined)  return instance(this.props.else);
      if(this.props['case' + i] === val)        return instance(this.props['then' + i]);
    }
    return null;
  };

};