const bindAll = require('lodash.bindall'); const PropTypes = require('prop-types'); const React = require('react'); const VM = require('scratch-vm'); const backdropLibraryContent = require('../lib/libraries/backdrops.json'); const LibraryComponent = require('../components/library/library.jsx'); class BackdropLibrary extends React.Component { constructor (props) { super(props); bindAll(this, [ 'handleItemSelect' ]); } handleItemSelect (item) { const vmBackdrop = { name: item.name, rotationCenterX: item.info[0] && item.info[0] / 2, rotationCenterY: item.info[1] && item.info[1] / 2, bitmapResolution: item.info.length > 2 ? item.info[2] : 1, skinId: null }; this.props.vm.addBackdrop(item.md5, vmBackdrop); } render () { return ( <LibraryComponent data={backdropLibraryContent} title="Backdrop Library" visible={this.props.visible} onItemSelected={this.handleItemSelect} onRequestClose={this.props.onRequestClose} /> ); } } BackdropLibrary.propTypes = { onRequestClose: PropTypes.func, visible: PropTypes.bool, vm: PropTypes.instanceOf(VM).isRequired }; module.exports = BackdropLibrary;