// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import React from 'react'; import PropTypes from 'prop-types'; import { TouchableOpacity, Modal, View, } from 'react-native'; import StatusBar from 'app/components/status_bar'; import FormattedText from 'app/components/formatted_text'; import RadioButtonGroup from 'app/components/radio_button'; import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme'; import ClockDisplayBase from './clock_display_base'; export default class ClockDisplay extends ClockDisplayBase { static propTypes = { showModal: PropTypes.bool.isRequired, militaryTime: PropTypes.bool.isRequired, onClose: PropTypes.func.isRequired, }; setMilitaryTime = (value) => { this.setState({ newMilitaryTime: value, }); }; closeModal = () => { const {militaryTime, onClose} = this.props; this.setState({ newMilitaryTime: militaryTime, }); onClose(); }; saveSelection = () => { const {newMilitaryTime} = this.state; const {onClose} = this.props; this.saveClockDisplayPreference(newMilitaryTime); onClose(); }; renderClockDisplayModal = (style) => { const {showModal} = this.props; const {intl} = this.context; const {newMilitaryTime} = this.state; const options = [{ label: intl.formatMessage({ id: 'user.settings.display.normalClock', defaultMessage: '12-hour clock (example: 4:00 PM)', }), value: 'false', checked: newMilitaryTime === 'false', }, { label: intl.formatMessage({ id: 'user.settings.display.militaryClock', defaultMessage: '24-hour clock (example: 16:00)', }), value: 'true', checked: newMilitaryTime === 'true', }]; return ( ); }; render() { const {theme} = this.props; const style = getStyleSheet(theme); return ( {this.renderClockDisplayModal(style)} ); } } const getStyleSheet = makeStyleSheetFromTheme((theme) => { return { container: { flex: 1, backgroundColor: theme.centerChannelBg, }, wrapper: { backgroundColor: changeOpacity(theme.centerChannelColor, 0.06), flex: 1, }, separator: { backgroundColor: changeOpacity(theme.centerChannelColor, 0.1), height: 1, width: '100%', }, modalOverlay: { backgroundColor: changeOpacity('#000000', 0.6), alignItems: 'center', flex: 1, }, modal: { backgroundColor: theme.centerChannelBg, borderRadius: 4, marginTop: 20, width: '95%', }, modalBody: { paddingHorizontal: 24, }, modalTitleContainer: { marginBottom: 30, marginTop: 20, }, modalTitle: { color: theme.centerChannelColor, fontSize: 19, }, modalHelpText: { color: changeOpacity(theme.centerChannelColor, 0.5), fontSize: 13, marginTop: 20, }, modalFooter: { alignItems: 'flex-end', height: 58, marginTop: 40, width: '100%', }, modalFooterContainer: { alignItems: 'center', flex: 1, flexDirection: 'row', paddingRight: 24, }, modalFooterOptionContainer: { alignItems: 'center', height: 40, justifyContent: 'center', paddingHorizontal: 10, paddingVertical: 5, }, modalFooterOption: { color: theme.linkColor, fontSize: 14, }, modalFooterButtonSpacer: { marginRight: 10, }, }; });