From 97d3f857623350405e22c61b2fad797154669924 Mon Sep 17 00:00:00 2001 From: Paul Kaplan <pkaplan@media.mit.edu> Date: Mon, 30 Apr 2018 13:59:56 -0400 Subject: [PATCH] Update targets list and editing target at the same time. Prevent crashes resulting from the editing target not being on the target list. --- src/lib/vm-listener-hoc.jsx | 3 +-- src/reducers/targets.js | 21 +++++---------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/src/lib/vm-listener-hoc.jsx b/src/lib/vm-listener-hoc.jsx index 3f1453b54..3ea4dccd8 100644 --- a/src/lib/vm-listener-hoc.jsx +++ b/src/lib/vm-listener-hoc.jsx @@ -98,8 +98,7 @@ const vmListenerHOC = function (WrappedComponent) { }); const mapDispatchToProps = dispatch => ({ onTargetsUpdate: data => { - dispatch(updateEditingTarget(data.editingTarget)); - dispatch(updateTargets(data.targetList)); + dispatch(updateTargets(data.targetList, data.editingTarget)); }, onMonitorsUpdate: monitorList => { dispatch(updateMonitors(monitorList)); diff --git a/src/reducers/targets.js b/src/reducers/targets.js index 6df9632d9..883fe4917 100644 --- a/src/reducers/targets.js +++ b/src/reducers/targets.js @@ -1,4 +1,3 @@ -const UPDATE_EDITING_TARGET = 'scratch-gui/targets/UPDATE_EDITING_TARGET'; const UPDATE_TARGET_LIST = 'scratch-gui/targets/UPDATE_TARGET_LIST'; const initialState = { @@ -21,27 +20,18 @@ const reducer = function (state, action) { {} ), stage: action.targets - .filter(target => target.isStage)[0] || {} + .filter(target => target.isStage)[0] || {}, + editingTarget: action.editingTarget }); - case UPDATE_EDITING_TARGET: - return Object.assign({}, state, {editingTarget: action.target}); default: return state; } }; -const updateTargets = function (targetList) { +const updateTargets = function (targetList, editingTarget) { return { type: UPDATE_TARGET_LIST, targets: targetList, - meta: { - throttle: 30 - } - }; -}; -const updateEditingTarget = function (editingTarget) { - return { - type: UPDATE_EDITING_TARGET, - target: editingTarget, + editingTarget: editingTarget, meta: { throttle: 30 } @@ -49,6 +39,5 @@ const updateEditingTarget = function (editingTarget) { }; export { reducer as default, - updateTargets, - updateEditingTarget + updateTargets }; -- GitLab