From 163b9a5bd5e6f77102758d800a40bd08205bb095 Mon Sep 17 00:00:00 2001 From: Karishma Chadha <kchadha@scratch.mit.edu> Date: Tue, 21 Aug 2018 15:45:28 -0400 Subject: [PATCH] Add ability to restore a deleted costume. --- src/components/menu-bar/menu-bar.jsx | 5 +++++ src/containers/costume-tab.jsx | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/components/menu-bar/menu-bar.jsx b/src/components/menu-bar/menu-bar.jsx index 6edc06043..5eb4ad331 100644 --- a/src/components/menu-bar/menu-bar.jsx +++ b/src/components/menu-bar/menu-bar.jsx @@ -167,6 +167,11 @@ class MenuBar extends React.Component { id="gui.menuBar.restoreSound" />); case 'Costume': + return (<FormattedMessage + defaultMessage="Restore Costume" + description="Menu bar item for restoring the last deleted costume." + id="gui.menuBar.restoreCostume" + />); default: { return (<FormattedMessage defaultMessage="Restore" diff --git a/src/containers/costume-tab.jsx b/src/containers/costume-tab.jsx index 454c5ffce..03d4fbaed 100644 --- a/src/containers/costume-tab.jsx +++ b/src/containers/costume-tab.jsx @@ -24,6 +24,8 @@ import { SOUNDS_TAB_INDEX } from '../reducers/editor-tab'; +import {setRestore} from '../reducers/restore-deletion'; + import addLibraryBackdropIcon from '../components/asset-panel/icon--add-backdrop-lib.svg'; import addLibraryCostumeIcon from '../components/asset-panel/icon--add-costume-lib.svg'; import fileUploadIcon from '../components/action-menu/icon--file-upload.svg'; @@ -135,7 +137,10 @@ class CostumeTab extends React.Component { this.setState({selectedCostumeIndex: costumeIndex}); } handleDeleteCostume (costumeIndex) { - this.props.vm.deleteCostume(costumeIndex); + const restoreCostumeFun = this.props.vm.deleteCostume(costumeIndex); + this.props.dispatchUpdateRestore({ + restoreFun: restoreCostumeFun, + deletedItem: 'Costume'}); } handleDuplicateCostume (costumeIndex) { this.props.vm.duplicateCostume(costumeIndex); @@ -232,6 +237,7 @@ class CostumeTab extends React.Component { } render () { const { + dispatchUpdateRestore, // eslint-disable-line no-unused-vars intl, onNewCostumeFromCameraClick, onNewLibraryBackdropClick, @@ -325,6 +331,7 @@ class CostumeTab extends React.Component { CostumeTab.propTypes = { cameraModalVisible: PropTypes.bool, + dispatchUpdateRestore: PropTypes.func, editingTarget: PropTypes.string, intl: intlShape, onActivateSoundsTab: PropTypes.func.isRequired, @@ -372,6 +379,9 @@ const mapDispatchToProps = dispatch => ({ }, onRequestCloseCameraModal: () => { dispatch(closeCameraCapture()); + }, + dispatchUpdateRestore: restoreState => { + dispatch(setRestore(restoreState)); } }); -- GitLab