/**
 * @file        Container component
 * @author      MicroMatrix <yangpan.1985@bytedance.com>
 * @copyright   2012-2020 bytedance
 * @link        git@code.byted.org:yangpan.1985/avg.git
 */

import React from 'react';
import createComponent from 'components/createComponent';
import ContainerMixin from 'components/ContainerMixin';
import NodeMixin from 'components/NodeMixin';
import PixiContainer from 'classes/Sprite';
import pixiPropTypes from './pixi/propTypes';

const RawContainer = createComponent('RawContainer', ContainerMixin, NodeMixin, {

  createNode() {
    this.node = new PixiContainer();
  },
  mountNode(props) {
    // color, opacity, width, height, x, y, etc.
    const layer = this.node;

    layer.x = props.x || 0;
    layer.y = props.y || 0;
    layer.alpha = props.opactiy || 1;

    return layer;
  },
  updateNode(prevProps, props) {
    const layer = this.node;

    layer.x = props.x || 0;
    layer.y = props.y || 0;
    layer.alpha = props.opactiy || 1;
  },

});

export class Container extends React.PureComponent {
  static propTypes = pixiPropTypes;
  render() {
    return React.createElement(RawContainer, this.props, this.props.children);
  }
}
