Skip to content
Snippets Groups Projects
Commit 17e28b2a authored by Paul Kaplan's avatar Paul Kaplan
Browse files

Make sure to save assets before sending them to the backpack

This prevents assets from existing in the backpack server without also existing in the asset server.
parent 7fcbae60
Branches
Tags
No related merge requests found
......@@ -83,12 +83,15 @@ class Backpack extends React.Component {
}
handleDrop (dragInfo) {
let payloader = null;
let presaveAsset = null;
switch (dragInfo.dragType) {
case DragConstants.COSTUME:
payloader = costumePayload;
presaveAsset = dragInfo.asset;
break;
case DragConstants.SOUND:
payloader = soundPayload;
presaveAsset = dragInfo.asset;
break;
case DragConstants.SPRITE:
payloader = spritePayload;
......@@ -102,6 +105,14 @@ class Backpack extends React.Component {
// Creating the payload is async, so set loading before starting
this.setState({loading: true}, () => {
payloader(dragInfo.payload, this.props.vm)
.then(payload => {
// Force the asset to save to the asset server before storing in backpack
// Ensures any asset present in the backpack is also on the asset server
if (presaveAsset && !presaveAsset.clean) {
return storage.store(presaveAsset).then(() => payload);
}
return payload;
})
.then(payload => saveBackpackObject({
host: this.props.host,
token: this.props.token,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment