import PropTypes from 'prop-types'; import React, { Component } from 'react'; import FieldSet from 'Components/FieldSet'; import Form from 'Components/Form/Form'; import FormGroup from 'Components/Form/FormGroup'; import FormInputGroup from 'Components/Form/FormInputGroup'; import FormLabel from 'Components/Form/FormLabel'; import Button from 'Components/Link/Button'; import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; import { inputTypes } from 'Helpers/Props'; import { firstDayOfWeekOptions, timeFormatOptions, weekColumnOptions } from 'Settings/UI/UISettings'; import translate from 'Utilities/String/translate'; class CalendarOptionsModalContent extends Component { // // Lifecycle constructor(props, context) { super(props, context); const { firstDayOfWeek, calendarWeekColumnHeader, timeFormat, enableColorImpairedMode } = props; this.state = { firstDayOfWeek, calendarWeekColumnHeader, timeFormat, enableColorImpairedMode }; } componentDidUpdate(prevProps) { const { firstDayOfWeek, calendarWeekColumnHeader, timeFormat, enableColorImpairedMode } = this.props; if ( prevProps.firstDayOfWeek !== firstDayOfWeek || prevProps.calendarWeekColumnHeader !== calendarWeekColumnHeader || prevProps.timeFormat !== timeFormat || prevProps.enableColorImpairedMode !== enableColorImpairedMode ) { this.setState({ firstDayOfWeek, calendarWeekColumnHeader, timeFormat, enableColorImpairedMode }); } } // // Listeners onOptionInputChange = ({ name, value }) => { const { dispatchSetCalendarOption } = this.props; dispatchSetCalendarOption({ [name]: value }); } onGlobalInputChange = ({ name, value }) => { const { dispatchSaveUISettings } = this.props; const setting = { [name]: value }; this.setState(setting, () => { dispatchSaveUISettings(setting); }); } onLinkFocus = (event) => { event.target.select(); } // // Render render() { const { showMovieInformation, showCutoffUnmetIcon, onModalClose } = this.props; const { firstDayOfWeek, calendarWeekColumnHeader, timeFormat, enableColorImpairedMode } = this.state; return ( Calendar Options
{translate('ShowMovieInformation')} {translate('IconForCutoffUnmet')}
{translate('FirstDayOfWeek')} {translate('WeekColumnHeader')} {translate('TimeFormat')} {translate('EnableColorImpairedMode')}
); } } CalendarOptionsModalContent.propTypes = { showMovieInformation: PropTypes.bool.isRequired, showCutoffUnmetIcon: PropTypes.bool.isRequired, firstDayOfWeek: PropTypes.number.isRequired, calendarWeekColumnHeader: PropTypes.string.isRequired, timeFormat: PropTypes.string.isRequired, enableColorImpairedMode: PropTypes.bool.isRequired, dispatchSetCalendarOption: PropTypes.func.isRequired, dispatchSaveUISettings: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired }; export default CalendarOptionsModalContent;