message: FixedLayout: redesigned to stateless component
diff: import React from 'react';
  import getClassName from '../../helpers/getClassName';
  import PropTypes from 'prop-types';
  -
  import classnames from '../../lib/classnames';
  import { transitionEndEventName, transitionStartEventName } from '../View/View';
  const baseClassNames = getClassName('FixedLayout');
  export default class FixedLayout extends React.Component {
  - state = {
  - transition: false,
  - topOffset: null,
  - paddingBottom: null
  - };
  -
  static propTypes = {
  children: PropTypes.node,
  style: PropTypes.object,
  @@ -34,10 +27,6 @@ export default class FixedLayout extends React.Component {
  return this.context.document || document;
  }
  - get insets () {
  - return this.context.insets || {};
  - }
  -
  componentDidMount () {
  this.document.addEventListener(transitionStartEventName, this.onViewTransitionStart);
  this.document.addEventListener(transitionEndEventName, this.onViewTransitionEnd);
  @@ -50,12 +39,10 @@ export default class FixedLayout extends React.Component {
  onViewTransitionStart = (e) => {
  let panelScroll = e.detail.scrolls[this.context.panel] || 0;
  - this.setState({ transition: true, topOffset: this.el.offsetTop + panelScroll });
  + this.el && this.el.setAttribute('style', `position: absolute; top: ${this.el.offsetTop + panelScroll}px`);
  };
  - onViewTransitionEnd = () => {
  - this.setState({ transition: false, topOffset: null });
  - };
  + onViewTransitionEnd = () => this.el && this.el.removeAttribute('style');
  getRef = el => this.el = el;
  @@ -70,8 +57,7 @@ export default class FixedLayout extends React.Component {
  className={classnames(baseClassNames, { [`FixedLayout--${vertical}`]: vertical }, className)}
  style={{
  ...style,
  - ...{ paddingBottom: this.context.insets ? this.context.insets.bottom + tabbarPadding : undefined },
  - ...(this.state.transition ? { position: 'absolute', top: this.state.topOffset } : {})
  + ...{ paddingBottom: vertical === 'bottom' && this.context.insets && this.context.insets.bottom ? this.context.insets.bottom + tabbarPadding : null }
  }}
  >
  <div className="FixedLayout__in">{children}</div>
  