import { useCallback } from 'react'; import styled from 'styled-components'; import { messages } from '../../shared/gettext'; import { useAppContext } from '../context'; import { useHistory } from '../lib/history'; import { RoutePath } from '../lib/routes'; import { useSelector } from '../redux/store'; import { AriaDescription, AriaInput, AriaInputGroup, AriaLabel } from './AriaGroup'; import * as Cell from './cell'; import { BackAction } from './KeyboardNavigation'; import { Layout, SettingsContainer } from './Layout'; import { NavigationBar, NavigationContainer, NavigationItems, NavigationScrollbars, TitleBarItem, } from './NavigationBar'; import SettingsHeader, { HeaderTitle } from './SettingsHeader'; const StyledContent = styled.div({ display: 'flex', flexDirection: 'column', flex: 1, marginBottom: '2px', }); const StyledCellIcon = styled(Cell.UntintedIcon)({ marginRight: '8px', }); export default function UserInterfaceSettings() { const { pop } = useHistory(); const unpinnedWindow = useSelector((state) => state.settings.guiSettings.unpinnedWindow); return ( { // TRANSLATORS: Title label in navigation bar messages.pgettext('user-interface-settings-view', 'User interface settings') } {messages.pgettext('user-interface-settings-view', 'User interface settings')} {(window.env.platform === 'win32' || (window.env.platform === 'darwin' && window.env.development)) && ( )} {unpinnedWindow && ( )} ); } function NotificationsSetting() { const enableSystemNotifications = useSelector( (state) => state.settings.guiSettings.enableSystemNotifications, ); const { setEnableSystemNotifications } = useAppContext(); return ( {messages.pgettext('user-interface-settings-view', 'Notifications')} {messages.pgettext( 'user-interface-settings-view', 'Enable or disable system notifications. The critical notifications will always be displayed.', )} ); } function MonochromaticTrayIconSetting() { const monochromaticIcon = useSelector((state) => state.settings.guiSettings.monochromaticIcon); const { setMonochromaticIcon } = useAppContext(); return ( {messages.pgettext('user-interface-settings-view', 'Monochromatic tray icon')} {messages.pgettext( 'user-interface-settings-view', 'Use a monochromatic tray icon instead of a colored one.', )} ); } function UnpinnedWindowSetting() { const unpinnedWindow = useSelector((state) => state.settings.guiSettings.unpinnedWindow); const { setUnpinnedWindow } = useAppContext(); return ( {messages.pgettext('user-interface-settings-view', 'Unpin app from taskbar')} {messages.pgettext( 'user-interface-settings-view', 'Enable to move the app around as a free-standing window.', )} ); } function StartMinimizedSetting() { const startMinimized = useSelector((state) => state.settings.guiSettings.startMinimized); const { setStartMinimized } = useAppContext(); return ( {messages.pgettext('user-interface-settings-view', 'Start minimized')} {messages.pgettext( 'user-interface-settings-view', 'Show only the tray icon when the app starts.', )} ); } function LanguageButton() { const history = useHistory(); const { getPreferredLocaleDisplayName } = useAppContext(); const preferredLocale = useSelector((state) => state.settings.guiSettings.preferredLocale); const localeDisplayName = getPreferredLocaleDisplayName(preferredLocale); const navigate = useCallback(() => history.push(RoutePath.selectLanguage), [history]); return ( { // TRANSLATORS: Navigation button to the 'Language' settings view messages.pgettext('user-interface-settings-view', 'Language') } {localeDisplayName} ); }