Spaces:
Runtime error
Runtime error
| const UPDATE_TARGET_LIST = 'scratch-gui/targets/UPDATE_TARGET_LIST'; | |
| const HIGHLIGHT_TARGET = 'scratch-gui/targets/HIGHLIGHT_TARGET'; | |
| const initialState = { | |
| sprites: {}, | |
| stage: {}, | |
| highlightedTargetId: null, | |
| highlightedTargetTime: null | |
| }; | |
| const reducer = function (state, action) { | |
| if (typeof state === 'undefined') state = initialState; | |
| switch (action.type) { | |
| case UPDATE_TARGET_LIST: | |
| return Object.assign({}, state, { | |
| sprites: action.targets | |
| .filter(target => !target.isStage) | |
| .reduce( | |
| (targets, target, listId) => Object.assign( | |
| targets, | |
| {[target.id]: {order: listId, ...target}} | |
| ), | |
| {} | |
| ), | |
| stage: action.targets | |
| .filter(target => target.isStage)[0] || {}, | |
| editingTarget: action.editingTarget | |
| }); | |
| case HIGHLIGHT_TARGET: | |
| return Object.assign({}, state, { | |
| highlightedTargetId: action.targetId, | |
| highlightedTargetTime: action.updateTime | |
| }); | |
| default: | |
| return state; | |
| } | |
| }; | |
| const updateTargets = function (targetList, editingTarget) { | |
| return { | |
| type: UPDATE_TARGET_LIST, | |
| targets: targetList, | |
| editingTarget: editingTarget | |
| }; | |
| }; | |
| const highlightTarget = function (targetId) { | |
| return { | |
| type: HIGHLIGHT_TARGET, | |
| targetId: targetId, | |
| updateTime: Date.now() | |
| }; | |
| }; | |
| export { | |
| reducer as default, | |
| initialState as targetsInitialState, | |
| updateTargets, | |
| highlightTarget | |
| }; | |