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 } }; });