@girders-elements/core
Version:
Girders Elements is an architectural framework that assists with building data-driven apps with React or React Native.
76 lines (29 loc) • 3.9 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:true});var _jsxFileName='packages/core/src/ui/ElementView.js';var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();
var _ramda=require('ramda');var _ramda2=_interopRequireDefault(_ramda);
var _immutable=require('immutable');var _immutable2=_interopRequireDefault(_immutable);
var _react=require('react');var _react2=_interopRequireDefault(_react);
var _propTypes=require('prop-types');var _propTypes2=_interopRequireDefault(_propTypes);
var _data=require('../data');var data=_interopRequireWildcard(_data);function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key];}}newObj.default=obj;return newObj;}}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}exports.default=
_ramda2.default.curry(function(kind,Component,runtime){var _class,_temp;var
globalUIFor=runtime.uiFor,system=runtime.system;
return _temp=_class=function(_React$Component){_inherits(_class,_React$Component);
function _class(props){_classCallCheck(this,_class);var _this=_possibleConstructorReturn(this,(_class.__proto__||Object.getPrototypeOf(_class)).call(this,
props));_this.
_uiFor=function(path){var reactKey=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined;var
element=_this.props.element;
var sub=void 0;
if(Array.isArray(path)){
sub=element.getIn(path);
}else{
sub=element.get(path);
}
return globalUIFor(sub,reactKey);
};_this._reset(props);return _this;}_createClass(_class,[{key:'componentWillReceiveProps',value:function componentWillReceiveProps(nextProps){this._reset(nextProps);}},{key:'shouldComponentUpdate',value:function shouldComponentUpdate(nextProps){var current=this.props.element;var next=nextProps.element;if(current!=null&&next==null||current==null&&next!=null){return true;}return!_immutable2.default.is(current,next);}},{key:'_reset',value:function _reset(props){this._system=system.focusOn(props.element._keyPath);this._dispatch=this._system.dispatch.bind(this._system);}},{key:'render',value:function render()
{
return(
_react2.default.createElement(Component,{
element:this.props.element,
dispatch:this._dispatch,
uiFor:this._uiFor,__source:{fileName:_jsxFileName,lineNumber:68}}));
}}]);return _class;}(_react2.default.Component),_class.propTypes={element:_propTypes2.default.object.isRequired},_class.contextTypes={store:_propTypes2.default.object},_class.displayName='ElementView['+data.canonical(kind).toJS()+']',_temp;
});