Skip to content
Snippets Groups Projects
Unverified Commit e79b56d6 authored by Karishma Chadha's avatar Karishma Chadha Committed by GitHub
Browse files

Merge pull request #2935 from kchadha/restore-sound

Restore the last deleted sound.
parents b0118cd1 a9b1f857
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}>
......@@ -286,18 +311,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