{
Object.keys(locales)
- .map(locale => (
- );
+ })
}
@@ -101,12 +128,12 @@ class LanguageMenu extends React.PureComponent {
LanguageMenu.propTypes = {
currentLocale: PropTypes.string,
+ focusedRef: PropTypes.shape({current: PropTypes.instanceOf(Element)}),
isRtl: PropTypes.bool,
- label: PropTypes.string,
menuOpen: PropTypes.bool,
onChangeLanguage: PropTypes.func,
- onRequestCloseSettings: PropTypes.func,
- onRequestOpen: PropTypes.func
+ onOpen: PropTypes.func,
+ onClose: PropTypes.func
};
const mapStateToProps = state => ({
@@ -116,12 +143,12 @@ const mapStateToProps = state => ({
messagesByLocale: state.locales.messagesByLocale
});
-const mapDispatchToProps = (dispatch, ownProps) => ({
+const mapDispatchToProps = dispatch => ({
onChangeLanguage: locale => {
dispatch(selectLocale(locale));
- ownProps.onRequestCloseSettings();
},
- onRequestOpen: () => dispatch(openLanguageMenu())
+ onOpen: () => dispatch(openLanguageMenu()),
+ onClose: () => dispatch(closeLanguageMenu())
});
export default connect(
diff --git a/packages/scratch-gui/src/components/menu-bar/menu-bar.jsx b/packages/scratch-gui/src/components/menu-bar/menu-bar.jsx
index 58f955a1bb..5c95483f5d 100644
--- a/packages/scratch-gui/src/components/menu-bar/menu-bar.jsx
+++ b/packages/scratch-gui/src/components/menu-bar/menu-bar.jsx
@@ -24,11 +24,10 @@ import ProjectTitleInput from './project-title-input.jsx';
import AuthorInfo from './author-info.jsx';
import AccountNav from '../../components/menu-bar/account-nav.jsx';
import LoginDropdown from './login-dropdown.jsx';
-import SB3Downloader from '../../containers/sb3-downloader.jsx';
-import DeletionRestorer from '../../containers/deletion-restorer.jsx';
-import TurboMode from '../../containers/turbo-mode.jsx';
import MenuBarHOC from '../../containers/menu-bar-hoc.jsx';
import SettingsMenu from './settings-menu.jsx';
+import {FileMenu} from './file-menu.jsx';
+import {EditMenu} from './edit-menu.jsx';
import {openTipsLibrary, openDebugModal} from '../../reducers/modals';
import {setPlayer} from '../../reducers/mode';
@@ -84,8 +83,6 @@ import profileIcon from './icon--profile.png';
import remixIcon from './icon--remix.svg';
import dropdownCaret from './dropdown-caret.svg';
import aboutIcon from './icon--about.svg';
-import fileIcon from './icon--file.svg';
-import editIcon from './icon--edit.svg';
import debugIcon from '../debug-modal/icons/icon--debug.svg';
import scratchLogo from './scratch-logo.svg';
@@ -197,6 +194,10 @@ class MenuBar extends React.Component {
'getSaveToComputerHandler',
'restoreOptionMessage'
]);
+
+ this.settingsRef = React.createRef();
+ this.fileRef = React.createRef();
+ this.editRef = React.createRef();
}
componentDidMount () {
document.addEventListener('keydown', this.handleKeyPress);
@@ -289,6 +290,11 @@ class MenuBar extends React.Component {
};
}
handleKeyPress (event) {
+ if (event.key === 'Enter') {
+ event.preventDefault();
+ event.target.click();
+ }
+
const modifier = bowser.mac ? event.metaKey : event.ctrlKey;
if (modifier && event.key === 's') {
this.props.onClickSave();
@@ -385,20 +391,6 @@ class MenuBar extends React.Component {
};
}
render () {
- const saveNowMessage = (
-
- );
- const createCopyMessage = (
-
- );
const remixMessage = (
);
- const newProjectMessage = (
-
- );
const remixButton = (