From 6a3f6fa88063de4bd19f169836a9ad3dac9ba586 Mon Sep 17 00:00:00 2001 From: Paul Kaplan <pkaplan@media.mit.edu> Date: Thu, 1 Nov 2018 21:03:01 -0400 Subject: [PATCH] Allow dragging from backpack to sprite and stage selectors --- src/components/sprite-selector/sprite-list.jsx | 3 ++- src/containers/stage-selector.jsx | 10 +++++++++- src/containers/target-pane.jsx | 7 +++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/components/sprite-selector/sprite-list.jsx b/src/components/sprite-selector/sprite-list.jsx index c10362a44..17ba2dc21 100644 --- a/src/components/sprite-selector/sprite-list.jsx +++ b/src/components/sprite-selector/sprite-list.jsx @@ -57,7 +57,8 @@ const SpriteList = function (props) { DragConstants.COSTUME, DragConstants.SOUND, DragConstants.BACKPACK_COSTUME, - DragConstants.BACKPACK_SOUND].includes(draggingType); + DragConstants.BACKPACK_SOUND, + DragConstants.BACKPACK_CODE].includes(draggingType); return ( <SortableAsset diff --git a/src/containers/stage-selector.jsx b/src/containers/stage-selector.jsx index e8f0fc9df..1edff7780 100644 --- a/src/containers/stage-selector.jsx +++ b/src/containers/stage-selector.jsx @@ -22,7 +22,8 @@ const dragTypes = [ DragConstants.COSTUME, DragConstants.SOUND, DragConstants.BACKPACK_COSTUME, - DragConstants.BACKPACK_SOUND + DragConstants.BACKPACK_SOUND, + DragConstants.BACKPACK_CODE ]; const DroppableStage = DropAreaHOC(dragTypes)(StageSelectorComponent); @@ -99,6 +100,13 @@ class StageSelector extends React.Component { md5: dragInfo.payload.body, name: dragInfo.payload.name }, this.props.id); + } else if (dragInfo.dragType === DragConstants.BACKPACK_CODE) { + fetch(dragInfo.payload.bodyUrl) + .then(response => response.json()) + .then(blocks => { + this.props.vm.shareBlocksToTarget(blocks, this.props.id); + this.props.vm.refreshWorkspace(); + }); } } setFileInput (input) { diff --git a/src/containers/target-pane.jsx b/src/containers/target-pane.jsx index cde8d4af4..b210ad35f 100644 --- a/src/containers/target-pane.jsx +++ b/src/containers/target-pane.jsx @@ -192,6 +192,13 @@ class TargetPane extends React.Component { md5: dragInfo.payload.body, name: dragInfo.payload.name }, targetId); + } else if (dragInfo.dragType === DragConstants.BACKPACK_CODE) { + fetch(dragInfo.payload.bodyUrl) + .then(response => response.json()) + .then(blocks => { + this.props.vm.shareBlocksToTarget(blocks, targetId); + this.props.vm.refreshWorkspace(); + }); } } } -- GitLab