Spaces:
Runtime error
Runtime error
import PropTypes from 'prop-types'; | |
import React from 'react'; | |
import {FormattedMessage} from 'react-intl'; | |
import LanguageMenu from './language-menu.jsx'; | |
import MenuBarMenu from './menu-bar-menu.jsx'; | |
import {MenuSection} from '../menu/menu.jsx'; | |
import MenuLabel from './tw-menu-label.jsx'; | |
import TWAccentThemeMenu from './tw-theme-accent.jsx'; | |
import TWGuiThemeMenu from './tw-theme-gui.jsx'; | |
import TWBlocksThemeMenu from './tw-theme-blocks.jsx'; | |
import TWWallpaperMenu from './tw-theme-wallpaper.jsx'; | |
import TWFontsThemeMenu from './tw-theme-fonts.jsx'; | |
import TWMenuBarAlignMenu from './tw-menubar-align.jsx'; | |
import TWCustomThemeMenu from './tw-theme-custom.jsx'; | |
import TWDesktopSettings from './tw-desktop-settings.jsx'; | |
import menuBarStyles from './menu-bar.css'; | |
import styles from './settings-menu.css'; | |
import dropdownCaret from './dropdown-caret.svg'; | |
import settingsIcon from './icon--settings.svg'; | |
const SettingsMenu = ({ | |
canChangeLanguage, | |
canChangeTheme, | |
isRtl, | |
onClickDesktopSettings, | |
onOpenCustomSettings, | |
onRequestClose, | |
onRequestOpen, | |
settingsMenuOpen | |
}) => ( | |
<MenuLabel | |
open={settingsMenuOpen} | |
onOpen={onRequestOpen} | |
onClose={onRequestClose} | |
> | |
<img | |
src={settingsIcon} | |
draggable={false} | |
width={20} | |
height={20} | |
/> | |
<span className={styles.dropdownLabel}> | |
<FormattedMessage | |
defaultMessage="Theme" | |
description="Theme menu" | |
id="gui.menuBar.theme" | |
/> | |
</span> | |
<img | |
src={dropdownCaret} | |
draggable={false} | |
width={8} | |
height={5} | |
/> | |
<MenuBarMenu | |
className={menuBarStyles.menuBarMenu} | |
open={settingsMenuOpen} | |
place={isRtl ? 'left' : 'right'} | |
> | |
<MenuSection> | |
{canChangeLanguage && <LanguageMenu onRequestCloseSettings={onRequestClose} />} | |
{canChangeTheme && ( | |
<React.Fragment> | |
<TWGuiThemeMenu /> | |
<TWMenuBarAlignMenu /> | |
<TWWallpaperMenu /> | |
<TWFontsThemeMenu /> | |
<TWBlocksThemeMenu | |
onOpenCustomSettings={onOpenCustomSettings} | |
/> | |
<TWAccentThemeMenu /> | |
<TWCustomThemeMenu /> | |
</React.Fragment> | |
)} | |
{onClickDesktopSettings && <TWDesktopSettings onClick={onClickDesktopSettings} />} | |
</MenuSection> | |
</MenuBarMenu> | |
</MenuLabel> | |
); | |
SettingsMenu.propTypes = { | |
canChangeLanguage: PropTypes.bool, | |
canChangeTheme: PropTypes.bool, | |
isRtl: PropTypes.bool, | |
onClickDesktopSettings: PropTypes.func, | |
onOpenCustomSettings: PropTypes.func, | |
onRequestClose: PropTypes.func, | |
onRequestOpen: PropTypes.func, | |
settingsMenuOpen: PropTypes.bool | |
}; | |
export default SettingsMenu; | |