Skip to content
Snippets Groups Projects
Commit 84901ebb authored by Ray Schamp's avatar Ray Schamp
Browse files

Use storage to retrieve costume data urls

parent d7d1ad9e
No related branches found
No related tags found
No related merge requests found
...@@ -27,8 +27,8 @@ const Selector = props => { ...@@ -27,8 +27,8 @@ const Selector = props => {
<Box className={styles.listArea}> <Box className={styles.listArea}>
{items.map((item, index) => ( {items.map((item, index) => (
<SpriteSelectorItem <SpriteSelectorItem
assetId={item.assetId}
className={styles.listItem} className={styles.listItem}
costumeURL={item.url}
id={index} id={index}
key={`asset-${index}`} key={`asset-${index}`}
name={item.name} name={item.name}
......
...@@ -53,17 +53,15 @@ const SpriteSelectorComponent = function (props) { ...@@ -53,17 +53,15 @@ const SpriteSelectorComponent = function (props) {
{Object.keys(sprites) {Object.keys(sprites)
// Re-order by list order // Re-order by list order
.sort((id1, id2) => sprites[id1].order - sprites[id2].order) .sort((id1, id2) => sprites[id1].order - sprites[id2].order)
.map(id => ( .map(id => sprites[id])
.map(sprite => (
<SpriteSelectorItem <SpriteSelectorItem
assetId={sprite.costume && sprite.costume.assetId}
className={styles.sprite} className={styles.sprite}
costumeURL={ id={sprite.id}
sprites[id].costume && key={sprite.id}
sprites[id].costume.url name={sprite.name}
} selected={sprite.id === selectedId}
id={id}
key={id}
name={sprites[id].name}
selected={id === selectedId}
onClick={onSelectSprite} onClick={onSelectSprite}
onDeleteButtonClick={onDeleteSprite} onDeleteButtonClick={onDeleteSprite}
/> />
......
...@@ -2,6 +2,8 @@ const bindAll = require('lodash.bindall'); ...@@ -2,6 +2,8 @@ const bindAll = require('lodash.bindall');
const PropTypes = require('prop-types'); const PropTypes = require('prop-types');
const React = require('react'); const React = require('react');
const {connect} = require('react-redux');
const SpriteSelectorItemComponent = require('../components/sprite-selector-item/sprite-selector-item.jsx'); const SpriteSelectorItemComponent = require('../components/sprite-selector-item/sprite-selector-item.jsx');
class SpriteSelectorItem extends React.Component { class SpriteSelectorItem extends React.Component {
...@@ -40,6 +42,7 @@ class SpriteSelectorItem extends React.Component { ...@@ -40,6 +42,7 @@ class SpriteSelectorItem extends React.Component {
} }
SpriteSelectorItem.propTypes = { SpriteSelectorItem.propTypes = {
assetId: PropTypes.string,
costumeURL: PropTypes.string, costumeURL: PropTypes.string,
id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
name: PropTypes.string, name: PropTypes.string,
...@@ -48,4 +51,10 @@ SpriteSelectorItem.propTypes = { ...@@ -48,4 +51,10 @@ SpriteSelectorItem.propTypes = {
selected: PropTypes.bool selected: PropTypes.bool
}; };
module.exports = SpriteSelectorItem; const mapStateToProps = (state, {assetId}) => ({
costumeURL: assetId && state.vm.runtime.storage.get(assetId).encodeDataURI()
});
module.exports = connect(
mapStateToProps
)(SpriteSelectorItem);
...@@ -2,6 +2,8 @@ const bindAll = require('lodash.bindall'); ...@@ -2,6 +2,8 @@ const bindAll = require('lodash.bindall');
const PropTypes = require('prop-types'); const PropTypes = require('prop-types');
const React = require('react'); const React = require('react');
const {connect} = require('react-redux');
const StageSelectorComponent = require('../components/stage-selector/stage-selector.jsx'); const StageSelectorComponent = require('../components/stage-selector/stage-selector.jsx');
class StageSelector extends React.Component { class StageSelector extends React.Component {
...@@ -18,6 +20,7 @@ class StageSelector extends React.Component { ...@@ -18,6 +20,7 @@ class StageSelector extends React.Component {
render () { render () {
const { const {
/* eslint-disable no-unused-vars */ /* eslint-disable no-unused-vars */
assetId,
id, id,
onSelect, onSelect,
/* eslint-enable no-unused-vars */ /* eslint-enable no-unused-vars */
...@@ -36,4 +39,12 @@ StageSelector.propTypes = { ...@@ -36,4 +39,12 @@ StageSelector.propTypes = {
id: PropTypes.string, id: PropTypes.string,
onSelect: PropTypes.func onSelect: PropTypes.func
}; };
module.exports = StageSelector;
const mapStateToProps = (state, {assetId}) => ({
url: assetId && state.vm.runtime.storage.get(assetId).encodeDataURI()
});
module.exports = connect(
mapStateToProps,
() => ({}) // omit dispatch prop
)(StageSelector);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment