azure-devops-ui
Version:
React components for building web UI in Azure DevOps
1 lines • 1.03 kB
JavaScript
import{__assign,__extends}from"tslib";import"../../CommonImports";import"../../Core/core.css";import*as React from"react";import{shimRef}from"../../Util";var Measure=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.childRef=React.createRef(),t.lastWidth=-1,t.lastHeight=-1,t.onResize=function(){var e=t.childRef.current;e&&(e=e.getBoundingClientRect(),t.lastWidth==e.width&&t.lastHeight==e.height||(t.props.onMeasure&&t.props.onMeasure(e.width,e.height),t.lastWidth=e.width,t.lastHeight=e.height))},t}return __extends(t,e),t.prototype.render=function(){var e=React.Children.only(this.props.children);return this.childRef=shimRef(e),React.cloneElement(e,__assign(__assign({},e.props),{ref:this.childRef}))},t.prototype.componentDidMount=function(){window.addEventListener("resize",this.onResize),this.onResize()},t.prototype.componentDidUpdate=function(){this.onResize()},t.prototype.componentWillUnmount=function(){window.removeEventListener("resize",this.onResize)},t}(React.Component);export{Measure};