import classNames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; import {FormattedMessage} from 'react-intl'; import {connect} from 'react-redux'; import check from './check.svg'; import {MenuItem, Submenu} from '../menu/menu.jsx'; import {DARK_THEME, DEFAULT_THEME, HIGH_CONTRAST_THEME, HARD_MODE_THEME, themeMap} from '../../lib/themes'; import {persistTheme} from '../../lib/themes/themePersistance'; import {openThemeMenu, themeMenuOpen} from '../../reducers/menus.js'; import {setTheme} from '../../reducers/theme.js'; import styles from './settings-menu.css'; import dropdownCaret from './dropdown-caret.svg'; const ThemeMenuItem = props => { const themeInfo = themeMap[props.theme]; return (
); }; ThemeMenuItem.propTypes = { isSelected: PropTypes.bool, onClick: PropTypes.func, theme: PropTypes.string }; const ThemeMenu = ({ isRtl, menuOpen, onChangeTheme, onRequestOpen, theme }) => { const enabledThemes = [DEFAULT_THEME, HIGH_CONTRAST_THEME, DARK_THEME, HARD_MODE_THEME]; const themeInfo = themeMap[theme]; return (
{enabledThemes.map(enabledTheme => ( onChangeTheme(enabledTheme)} theme={enabledTheme} />) )}
); }; ThemeMenu.propTypes = { isRtl: PropTypes.bool, menuOpen: PropTypes.bool, onChangeTheme: PropTypes.func, // eslint-disable-next-line react/no-unused-prop-types onRequestCloseSettings: PropTypes.func, onRequestOpen: PropTypes.func, theme: PropTypes.string }; const mapStateToProps = state => ({ isRtl: state.locales.isRtl, menuOpen: themeMenuOpen(state), theme: state.scratchGui.theme.theme }); const mapDispatchToProps = (dispatch, ownProps) => ({ onChangeTheme: theme => { dispatch(setTheme(theme)); ownProps.onRequestCloseSettings(); persistTheme(theme); }, onRequestOpen: () => dispatch(openThemeMenu()) }); export default connect( mapStateToProps, mapDispatchToProps )(ThemeMenu);