import bindAll from 'lodash.bindall'; import PropTypes from 'prop-types'; import React from 'react'; import {defineMessages, injectIntl, intlShape} from 'react-intl'; import VM from 'scratch-vm'; import {getCostumeLibrary} from '../lib/libraries/tw-async-libraries'; import spriteTags from '../lib/libraries/sprite-tags'; import LibraryComponent from '../components/library/library.jsx'; const messages = defineMessages({ libraryTitle: { defaultMessage: 'Choose a Costume', description: 'Heading for the costume library', id: 'gui.costumeLibrary.chooseACostume' } }); class CostumeLibrary extends React.PureComponent { constructor (props) { super(props); bindAll(this, [ 'handleItemSelected' ]); } handleItemSelected (item) { const vmCostume = { name: item.name, rotationCenterX: item.rotationCenterX, rotationCenterY: item.rotationCenterY, bitmapResolution: item.bitmapResolution, skinId: null }; if (item.fromPenguinModLibrary) { vmCostume.fromPenguinModLibrary = true; vmCostume.libraryId = item.libraryFilePage; vmCostume.dataFormat = item.dataFormat; } this.props.vm.addCostumeFromLibrary(item.md5ext, vmCostume); } render () { return ( ); } } CostumeLibrary.propTypes = { intl: intlShape.isRequired, onRequestClose: PropTypes.func, vm: PropTypes.instanceOf(VM).isRequired }; export default injectIntl(CostumeLibrary);