scratch-gui / src /components /menu-bar /settings-menu.jsx
soiz1's picture
Upload folder using huggingface_hub
8fd7a1d verified
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;