@turbox3d/renderer-core
Version:
Large-scale declarative graphic ui core renderer
149 lines (148 loc) • 5.33 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PureComponent = exports.Component = void 0;
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _shared = require("@turbox3d/shared");
var _utils = require("./utils");
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
var dummyPreserveProps = {
key: void 0,
// children: void 0,
// onClick: void 0,
// onDBClick: void 0,
// onRightClick: void 0,
// onDragStart: void 0,
// onDragMove: void 0,
// onDragEnd: void 0,
// onPinchStart: void 0,
// onPinch: void 0,
// onPinchEnd: void 0,
// onRotateStart: void 0,
// onRotate: void 0,
// onRotateEnd: void 0,
// onPress: void 0,
// onPressUp: void 0,
// onHoverIn: void 0,
// onHoverOut: void 0,
clickable: void 0,
hoverable: void 0,
draggable: void 0,
pinchable: void 0,
rotatable: void 0,
pressable: void 0,
id: void 0,
type: void 0
};
/**
* graphic render component
*/
var Component = exports.Component = /*#__PURE__*/function () {
function Component() {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
(0, _classCallCheck2["default"])(this, Component);
this.props = props;
}
return (0, _createClass2["default"])(Component, [{
key: "context",
get: function get() {
var scene = (0, _utils.getSceneParent)(this);
if (scene) {
return scene.sceneContext || {};
}
return {};
}
}, {
key: "forceUpdate",
value: function forceUpdate() {
this._vNode.update(true);
}
}, {
key: "shouldComponentUpdate",
value: function shouldComponentUpdate() {
var nextProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return true;
}
}, {
key: "shouldComponentInteractiveUpdate",
value: function shouldComponentInteractiveUpdate() {
var nextProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return !(0, _shared.shallowEqual)({
clickable: this.props.clickable,
hoverable: this.props.hoverable,
draggable: this.props.draggable,
pinchable: this.props.pinchable,
rotatable: this.props.rotatable,
pressable: this.props.pressable
}, {
clickable: nextProps.clickable,
hoverable: nextProps.hoverable,
draggable: nextProps.draggable,
pinchable: nextProps.pinchable,
rotatable: nextProps.rotatable,
pressable: nextProps.pressable
});
}
}, {
key: "shouldComponentCustomPropsUpdate",
value: function shouldComponentCustomPropsUpdate() {
var nextProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var preserveKeys = Object.keys(dummyPreserveProps);
return !(0, _shared.shallowEqual)(this.props, nextProps, preserveKeys);
}
}, {
key: "componentWillMount",
value: function componentWillMount() {
//
}
}, {
key: "componentWillUpdate",
value: function componentWillUpdate() {
var nextProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
} //
}, {
key: "render",
value: function render() {
return this.props.children || null;
}
}, {
key: "componentDidMount",
value: function componentDidMount() {
//
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
//
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
//
}
}]);
}();
var PureComponent = exports.PureComponent = /*#__PURE__*/function (_Component) {
function PureComponent() {
(0, _classCallCheck2["default"])(this, PureComponent);
return _callSuper(this, PureComponent, arguments);
}
(0, _inherits2["default"])(PureComponent, _Component);
return (0, _createClass2["default"])(PureComponent, [{
key: "shouldComponentUpdate",
value: function shouldComponentUpdate(nextProps) {
var interactiveKeys = new Set(['clickable', 'hoverable', 'draggable', 'pinchable', 'rotatable', 'pressable']);
var preserveKeys = Object.keys(dummyPreserveProps).filter(function (key) {
return !interactiveKeys.has(key);
});
return !(0, _shared.shallowEqual)(this.props, nextProps, preserveKeys);
}
}]);
}(Component);