/* @flow */ import React from 'react'; import Flux from '../../lib/flux'; import lodash from 'lodash'; import OverlayStore from '../../stores/OverlayStore'; import KeybindsStore from '../../stores/KeybindsStore'; import OverlayActionCreators from '../../actions/OverlayActionCreators'; import KeybindsActionCreators from '../../actions/KeybindsActionCreators'; import HelpdeskUtils from '../../utils/HelpdeskUtils'; import FormNotice from '../../uikit/form/FormNotice'; import FormSection from '../../uikit/form/FormSection'; import FormTitle, {Tags} from '../../uikit/form/FormTitle'; import Flex from '../../uikit/Flex'; import FormItem from '../../uikit/form/FormItem'; import SwitchItem from '../../uikit/SwitchItem'; import KeyRecorder from '../common/KeyRecorder'; import RadioGroup from '../../uikit/RadioGroup'; import i18n from '../../i18n'; import { OverlayDisplayNames, OverlayDisplayUsers, OverlayAvatarSizes, KeybindCustomActions as KeybindActions, } from '../../Constants'; function getCurrentInputLockKeybind() { return lodash.find(KeybindsStore.getKeybinds(), keybind => { return keybind.managed === true && keybind.action === KeybindActions.TOGGLE_OVERLAY_INPUT_LOCK; }); } class UserSettingsOverlay extends React.PureComponent { constructor(props) { super(props); lodash.bindAll(this, [ 'handleChangeEnabled', 'handleChangeDisplayNameMode', 'handleChangeAvatarSizeMode', 'handleChangeDisplayUserMode', 'handleInputLockShortcutChange', ]); } handleChangeEnabled(e) { OverlayActionCreators.setEnabled(e.currentTarget.checked); } handleChangeDisplayNameMode({value}) { OverlayActionCreators.setDisplayNameMode(value); } handleChangeAvatarSizeMode({value}) { OverlayActionCreators.setAvatarSizeMode(value); } handleChangeDisplayUserMode({value}) { OverlayActionCreators.setDisplayUserMode(value); } handleInputLockShortcutChange(shortcut) { KeybindsActionCreators.setKeybind({...this.props.inputLockKeybind, shortcut}); } renderExplanation() { return ( ); } renderOverlayToggle() { const {enabled, available, progress, inputLockKeybind} = this.props; let overlayProgressNote; if (enabled && !available && progress < 1) { const percent = (progress * 100) | 0; const note = i18n.Messages.OVERLAY_DOWNLOAD_PROGRESS.format({percent}); overlayProgressNote = {note}; } return ( {i18n.Messages.SETTINGS_GAMES_ENABLE_OVERLAY_LABEL} {overlayProgressNote} {i18n.Messages.ENABLE_INGAME_OVERLAY} ); } renderAvatarSize() { return ( ); } renderDisplayNames() { return ( ); } renderDisplayUsers() { return ( ); } render() { return ( {this.renderExplanation()} {this.renderOverlayToggle()} {this.renderAvatarSize()} {this.renderDisplayNames()} {this.renderDisplayUsers()} ); } } export default Flux.connectStores([OverlayStore, KeybindsStore], () => ({ enabled: OverlayStore.enabled, available: OverlayStore.isAvailable, progress: OverlayStore.installProgress, avatarSizeMode: OverlayStore.getAvatarSizeMode(), displayNameMode: OverlayStore.getDisplayNameMode(), displayUserMode: OverlayStore.getDisplayUserMode(), inputLockKeybind: getCurrentInputLockKeybind(), }))(UserSettingsOverlay); // WEBPACK FOOTER // // ./discord_app/components/user_settings/UserSettingsOverlay.js