igniteui-react-core
Version:
Ignite UI React Core.
52 lines (51 loc) • 1.68 kB
JavaScript
import * as React from 'react';
export class IgrComponentRendererContainer extends React.Component {
constructor(props) {
super(props);
this.listeners = [];
this._currentRoot = null;
this.rootCreated = this.rootCreated.bind(this);
this.state = {};
}
createObject(t, container, context, portalChildren, nameContext) {
let C = t;
t = new C();
return t;
}
rootCreated(rootRef) {
if (!rootRef) {
return;
}
this._currentRoot = rootRef;
for (let i = 0; i < this.listeners.length; i++) {
this.listeners[i](rootRef);
}
this.listeners.length = 0;
}
replaceRootItem(t, deferAttach, continueActions) {
let act = (r) => {
continueActions(true);
};
this.listeners.push(act);
this.setState({ rootComponentType: t });
}
clearContainer(continueActions) {
let act = (r) => {
continueActions(true);
};
this.listeners.push(act);
this.setState({ rootComponentType: null });
}
getRootObject() {
return this._currentRoot;
}
render() {
if (this.state.rootComponentType) {
let ele = React.createElement(this.state.rootComponentType, { ref: this.rootCreated, width: "100%", height: "100%" });
return React.createElement("div", { style: this.props.style ? this.props.style : { width: "100%", height: "100%" } }, ele);
}
else {
return React.createElement("div", { style: this.props.style ? this.props.style : { width: "100%", height: "100%" } });
}
}
}