UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

60 lines (59 loc) 2.38 kB
var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; define(["require", "exports", 'react', 'react-dom', './LayerHost', '../../utilities/object', './Layer.scss'], function (require, exports, React, ReactDOM, LayerHost_1, object_1) { "use strict"; var LAYER_HOST_ELEMENT_ID = 'ms-layer-host'; var _layerHost; var Layer = (function (_super) { __extends(Layer, _super); function Layer(props) { _super.call(this, props); this._layer = { id: object_1.getId('Layer'), children: props.children }; } Layer.prototype.render = function () { var isInLayer = this.context.isInLayer; return isInLayer ? this.props.children : null; }; Layer.prototype.componentWillMount = function () { if (!_layerHost) { var hostElement = document.createElement('div'); hostElement.setAttribute('id', LAYER_HOST_ELEMENT_ID); document.body.appendChild(hostElement); var layerHost = ReactDOM.render((React.createElement(LayerHost_1.LayerHost, null)), hostElement); _layerHost = layerHost; } }; Layer.prototype.componentDidMount = function () { if (!this.context.isInLayer) { _layerHost.addLayer(this._layer, this.props.onLayerMounted); } else { if (this.props.onLayerMounted) { this.props.onLayerMounted(); } } }; Layer.prototype.componentWillReceiveProps = function (props) { if (!this.context.isInLayer) { this._layer.children = props.children; _layerHost.updateLayer(this._layer); } }; Layer.prototype.componentWillUnmount = function () { if (!this.context.isInLayer) { _layerHost.removeLayer(this._layer); } }; Layer.contextTypes = { isInLayer: React.PropTypes.bool }; return Layer; }(React.Component)); exports.Layer = Layer; });