diff --git a/src/components/menu-bar/menu-bar.jsx b/src/components/menu-bar/menu-bar.jsx index 6edc06043ff7ce3b342c6a78e915d6abefcef099..5eb4ad3312d5a27d333b128ff70739c1eaae6c6b 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 454c5ffcef7a203ac7a927bb4b6873cb4b0041f1..03d4fbaedeb66ad4b24d2638397c4f91806a82de 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)); } });