import PropTypes from 'prop-types'; import * as React from 'react' import {Sprite} from '@avocado/graphics' import Image from './image' class SpriteComponent extends React.Component constructor: (props) -> super props @sprite = new Sprite() @sprite.on 'imageOrCanvasChanged sourceRectangleChanged', => @props.tickContainer() @defaultProps: image: null @propTypes: children: PropTypes.element componentWillUnmount: -> @sprite.destroy() render: -> image = React.Children.only @props.children child = React.cloneElement image, setIntoSprite: (image) => @sprite.setImageOrCanvas image @props.setIntoContainer @sprite return child export default SpriteComponent