import Store from '../store/store.js'; /** * @classdesc Abstract class for UI components. */ export default class Component { /** * @constructor * @param props {{store: Store, element: HTMLElement, eventName: string}} */ constructor(props = {}) { this.render = this.render || function () { }; // Adds props.eventName with this.render() as callback function to the list of events handled by the UI state manager if (props.store instanceof Store) { props.store.events.subscribe(props.eventName, () => this.render()); } if (props.hasOwnProperty('element')) { this.element = props.element; } } }