import React, {Fragment} from 'react'; import { View } from 'react-native'; import { Resolver } from './Types'; // EventSystem export default class Module extends React.Component{ constructor(props) { super(props); let { ModuleID, EventSystem } = props; let eventName = ModuleID + "HitCheck" EventSystem && EventSystem.on(eventName, ({x,y}) => { return true; }); this.isTemplate = false //console.log("GEN EV: " , eventName, EventSystem); this._containerStyle = { marginLeft: 24, marginRight: 24 } } getId() { return this.props.ModuleID; } renderModule(ctor, namespace = "default", props = {}) { let VS = this.props.CoreSystem.ViewSystem; if(!this.props.CoreSystem.ModuleSystem.get(ctor, namespace)) return null; return VS.renderModule({ value: ctor, namespace, props }, this.getId() +"C"+ (this.counter++)); } createAction(action) { if(!this.props.CoreSystem) { console.warning("This module was constructed without a CoreSystem"); return; } return this.props.CoreSystem.ActionSystem.createAction(action); } setContainerStyle(style) { this._containerStyle = style; } display() { throw new Error("You must extend this base Module and override display method!"); } render() { this.counter = 0; return {this.display()} // throw new Error("You must extend this base Module and override render method!"); } getProps() { return Resolver(this.constructor.Inputs, this.props); } }