Skip to content
Snippets Groups Projects
Commit a9b1f857 authored by Karishma Chadha's avatar Karishma Chadha
Browse files

Restore the last deleted sound.

parent be93dca2
No related branches found
No related tags found
No related merge requests found
......@@ -137,7 +137,8 @@ class MenuBar extends React.Component {
super(props);
bindAll(this, [
'handleLanguageMouseUp',
'handleRestoreOption'
'handleRestoreOption',
'restoreOptionMessage'
]);
}
handleLanguageMouseUp (e) {
......@@ -151,6 +152,30 @@ class MenuBar extends React.Component {
this.props.onRequestCloseEdit();
};
}
restoreOptionMessage (deletedItem) {
switch (deletedItem) {
case 'Sprite':
return (<FormattedMessage
defaultMessage="Restore Sprite"
description="Menu bar item for restoring the last deleted sprite."
id="gui.menuBar.restoreSprite"
/>);
case 'Sound':
return (<FormattedMessage
defaultMessage="Restore Sound"
description="Menu bar item for restoring the last deleted sound."
id="gui.menuBar.restoreSound"
/>);
case 'Costume':
default: {
return (<FormattedMessage
defaultMessage="Restore"
description="Menu bar item for restoring the last deleted item in its disabled state." /* eslint-disable-line max-len */
id="gui.menuBar.restore"
/>);
}
}
}
render () {
return (
<Box className={styles.menuBar}>
......@@ -306,18 +331,7 @@ class MenuBar extends React.Component {
className={classNames({[styles.disabled]: !restorable})}
onClick={this.handleRestoreOption(handleRestore)}
>
{deletedItem === 'Sprite' ?
<FormattedMessage
defaultMessage="Restore Sprite"
description="Menu bar item for restoring the last deleted sprite."
id="gui.menuBar.restoreSprite"
/> :
<FormattedMessage
defaultMessage="Restore"
description="Menu bar item for restoring the last deleted item in its disabled state." /* eslint-disable-line max-len */
id="gui.menuBar.restore"
/>
}
{this.restoreOptionMessage(deletedItem)}
</MenuItem>
)}</DeletionRestorer>
<MenuSection>
......
......@@ -34,6 +34,8 @@ import {
COSTUMES_TAB_INDEX
} from '../reducers/editor-tab';
import {setRestore} from '../reducers/restore-deletion';
class SoundTab extends React.Component {
constructor (props) {
super(props);
......@@ -76,10 +78,11 @@ class SoundTab extends React.Component {
}
handleDeleteSound (soundIndex) {
this.props.vm.deleteSound(soundIndex);
const restoreFun = this.props.vm.deleteSound(soundIndex);
if (soundIndex >= this.state.selectedSoundIndex) {
this.setState({selectedSoundIndex: Math.max(0, soundIndex - 1)});
}
this.props.dispatchUpdateRestore({restoreFun, deletedItem: 'Sound'});
}
handleDuplicateSound (soundIndex) {
......@@ -153,6 +156,7 @@ class SoundTab extends React.Component {
render () {
const {
dispatchUpdateRestore, // eslint-disable-line no-unused-vars
intl,
vm,
onNewSoundFromLibraryClick,
......@@ -252,6 +256,7 @@ class SoundTab extends React.Component {
}
SoundTab.propTypes = {
dispatchUpdateRestore: PropTypes.func,
editingTarget: PropTypes.string,
intl: intlShape,
onActivateCostumesTab: PropTypes.func.isRequired,
......@@ -294,6 +299,9 @@ const mapDispatchToProps = dispatch => ({
},
onRequestCloseSoundLibrary: () => {
dispatch(closeSoundLibrary());
},
dispatchUpdateRestore: restoreState => {
dispatch(setRestore(restoreState));
}
});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment