import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { inputTypes } from 'Helpers/Props'; import FieldSet from 'Components/FieldSet'; import Button from 'Components/Link/Button'; import Form from 'Components/Form/Form'; import FormGroup from 'Components/Form/FormGroup'; import FormLabel from 'Components/Form/FormLabel'; import FormInputGroup from 'Components/Form/FormInputGroup'; import ModalContent from 'Components/Modal/ModalContent'; import ModalHeader from 'Components/Modal/ModalHeader'; import ModalBody from 'Components/Modal/ModalBody'; import ModalFooter from 'Components/Modal/ModalFooter'; import { firstDayOfWeekOptions, weekColumnOptions, timeFormatOptions } from 'Settings/UI/UISettings'; 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 { collapseMultipleAlbums, showCutoffUnmetIcon, onModalClose } = this.props; const { firstDayOfWeek, calendarWeekColumnHeader, timeFormat, enableColorImpairedMode } = this.state; return ( Calendar Options
Collapse Multiple Albums Icon for Cutoff Unmet
First Day of Week Week Column Header Time Format Enable Color-Impaired Mode
); } } CalendarOptionsModalContent.propTypes = { collapseMultipleAlbums: 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;