![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /opt/mattermost/client/ |
Upload File : |
{"version":3,"file":"9838.c1561f2de85b6c3a94cd.js","mappings":"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","sources":["webpack://mattermost-webapp/./src/components/dnd_custom_time_picker_modal/dnd_custom_time_picker_modal.tsx"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport classNames from 'classnames';\nimport {DateTime} from 'luxon';\nimport React from 'react';\nimport type {DayPickerProps} from 'react-day-picker';\nimport {defineMessage, FormattedMessage} from 'react-intl';\n\nimport IconButton from '@mattermost/compass-components/components/icon-button'; // eslint-disable-line no-restricted-imports\nimport {GenericModal} from '@mattermost/components';\nimport type {UserStatus} from '@mattermost/types/users';\n\nimport type {Theme} from 'mattermost-redux/selectors/entities/preferences';\n\nimport CompassThemeProvider from 'components/compass_theme_provider/compass_theme_provider';\nimport DatePicker from 'components/date_picker';\nimport Input from 'components/widgets/inputs/input/input';\nimport Menu from 'components/widgets/menu/menu';\nimport MenuWrapper from 'components/widgets/menu/menu_wrapper';\n\nimport Constants, {A11yCustomEventTypes, UserStatuses} from 'utils/constants';\nimport type {A11yFocusEventDetail} from 'utils/constants';\nimport {toUTCUnix} from 'utils/datetime';\nimport {isKeyPressed} from 'utils/keyboard';\nimport {localizeMessage} from 'utils/utils';\n\nimport './dnd_custom_time_picker_modal.scss';\n\ntype Props = {\n onExited: () => void;\n userId: string;\n currentDate: Date;\n locale: string;\n\n theme: Theme;\n actions: {\n setStatus: (status: UserStatus) => void;\n };\n};\n\ntype State = {\n selectedDate: Date;\n selectedTime: string;\n timeMenuList: string[];\n dayPickerStartDate: Date;\n isPopperOpen: boolean;\n popperElement: HTMLDivElement | null;\n}\n\nexport default class DndCustomTimePicker extends React.PureComponent<Props, State> {\n private buttonRef = React.createRef<HTMLButtonElement>();\n constructor(props: Props) {\n super(props);\n\n const {currentDate} = this.props;\n const selectedDate: Date = new Date(currentDate);\n\n // if current time is > 23:20 then we will set date to tomorrow and show all times\n if (currentDate.getHours() === 23 && currentDate.getMinutes() > 20) {\n selectedDate.setDate(currentDate.getDate() + 1);\n }\n\n this.state = {\n selectedDate,\n dayPickerStartDate: selectedDate,\n ...this.makeTimeMenuList(selectedDate),\n isPopperOpen: false,\n popperElement: null,\n };\n }\n\n componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n\n handleKeyDown = (event: KeyboardEvent) => {\n if (isKeyPressed(event, Constants.KeyCodes.ESCAPE)) {\n if (this.state.isPopperOpen) {\n this.handlePopperOpenState(false);\n } else {\n this.props.onExited();\n }\n }\n };\n\n formatDate = (date: Date): string => {\n return DateTime.fromJSDate(date).toFormat('yyyy-MM-dd');\n };\n\n getText = () => {\n const modalHeaderText = (\n <FormattedMessage\n id='dnd_custom_time_picker_modal.defaultMsg'\n defaultMessage='Disable notifications until'\n />\n );\n const confirmButtonText = (\n <FormattedMessage\n id='dnd_custom_time_picker_modal.submitButton'\n defaultMessage='Disable Notifications'\n />\n );\n\n return {\n modalHeaderText,\n confirmButtonText,\n };\n };\n\n handleConfirm = async () => {\n if (this.state.isPopperOpen) {\n return;\n }\n const hours = parseInt(this.state.selectedTime.split(':')[0], 10);\n const minutes = parseInt(this.state.selectedTime.split(':')[1], 10);\n const endTime = new Date(this.state.selectedDate);\n endTime.setHours(hours, minutes);\n if (endTime < new Date()) {\n return;\n }\n await this.props.actions.setStatus({\n user_id: this.props.userId,\n status: UserStatuses.DND,\n dnd_end_time: toUTCUnix(endTime),\n manual: true,\n last_activity_at: toUTCUnix(this.props.currentDate),\n });\n this.props.onExited();\n };\n\n handleDaySelection = (day: Date) => {\n this.setState({\n isPopperOpen: false,\n selectedDate: day,\n ...this.makeTimeMenuList(day),\n });\n };\n\n makeTimeMenuList = (date: Date): {timeMenuList: string[]; selectedTime: string} => {\n const timeMenuItems = [];\n let h = 0;\n let m = 0;\n const curr = this.props.currentDate;\n\n if (this.formatDate(curr) === this.formatDate(date)) {\n h = curr.getHours();\n m = curr.getMinutes();\n if (m > 20) {\n h++;\n m = 0;\n } else {\n m = 30;\n }\n }\n\n for (let i = h; i < 24; i++) {\n for (let j = m / 30; j < 2; j++) {\n const t = i.toString().padStart(2, '0') + ':' + (j * 30).toString().padStart(2, '0');\n timeMenuItems.push(\n t,\n );\n }\n }\n\n return {\n timeMenuList: timeMenuItems,\n selectedTime: timeMenuItems[0],\n };\n };\n\n handlePopperOpenState = (isOpen: boolean) => {\n this.setState({\n isPopperOpen: isOpen,\n });\n };\n\n render() {\n const {\n modalHeaderText,\n confirmButtonText,\n } = this.getText();\n\n const {timeMenuList, selectedTime, selectedDate, dayPickerStartDate, isPopperOpen} = this.state;\n const timeMenuItems = timeMenuList.map((time) => {\n return (\n <Menu.ItemAction\n id={`dndTime_dropdown_${time}`}\n key={time}\n text={time}\n ariaLabel={`${time} hours`}\n onClick={() => {\n this.setState({\n selectedTime: time,\n });\n document.dispatchEvent(new CustomEvent<A11yFocusEventDetail>(\n A11yCustomEventTypes.FOCUS, {\n detail: {\n target: this.buttonRef.current,\n keyboardOnly: true,\n },\n },\n ));\n }}\n >\n {time}\n </Menu.ItemAction>\n );\n });\n\n const inputIcon = (\n <IconButton\n icon={'calendar-outline'}\n onClick={() => this.handlePopperOpenState(true)}\n className='dateTime__calendar-icon'\n size={'sm'}\n aria-haspopup='grid'\n />\n );\n\n const dayPickerProps: DayPickerProps = {\n initialFocus: isPopperOpen,\n mode: 'single',\n selected: selectedDate,\n onDayClick: this.handleDaySelection,\n disabled: [{\n before: dayPickerStartDate,\n }],\n showOutsideDays: true,\n };\n\n return (\n <CompassThemeProvider theme={this.props.theme}>\n <GenericModal\n compassDesign={true}\n ariaLabel={localizeMessage({id: 'dnd_custom_time_picker_modal.defaultMsg', defaultMessage: 'Disable notifications until'})}\n onExited={this.props.onExited}\n modalHeaderText={modalHeaderText}\n confirmButtonText={confirmButtonText}\n handleConfirm={this.handleConfirm}\n handleEnterKeyPress={this.handleConfirm}\n id='dndCustomTimePickerModal'\n className={'DndModal modal-overflow'}\n tabIndex={-1}\n keyboardEscape={false}\n >\n <div className='DndModal__content'>\n <DatePicker\n isPopperOpen={isPopperOpen}\n handlePopperOpenState={this.handlePopperOpenState}\n locale={this.props.locale}\n datePickerProps={dayPickerProps}\n >\n <Input\n value={this.formatDate(selectedDate)}\n readOnly={true}\n id='DndModal__calendar-input'\n className={classNames('DndModal__calendar-input', {'popper-open': isPopperOpen})}\n label={defineMessage({id: 'dnd_custom_time_picker_modal.date', defaultMessage: 'Date'})}\n onClick={() => this.handlePopperOpenState(true)}\n tabIndex={-1}\n inputPrefix={inputIcon}\n />\n </DatePicker>\n <MenuWrapper\n id='dropdown-no-caret'\n stopPropagationOnToggle={true}\n >\n <button\n className='DndModal__input'\n type='button'\n ref={this.buttonRef}\n >\n <div className='DndModal__input__label'>\n <FormattedMessage\n id='dnd_custom_time_picker_modal.time'\n defaultMessage='Time'\n />\n </div>\n <i className='icon icon--no-spacing icon-clock-outline icon--xs icon-14'/>\n <span>{selectedTime}</span>\n </button>\n <Menu\n openLeft={false}\n ariaLabel={'Clear custom status after'}\n >\n {timeMenuItems}\n </Menu>\n </MenuWrapper>\n </div>\n </GenericModal>\n </CompassThemeProvider>\n );\n }\n}\n"],"names":["DndCustomTimePicker","React","constructor","props","super","_defineProperty","event","isKeyPressed","Constants","KeyCodes","ESCAPE","this","state","isPopperOpen","handlePopperOpenState","onExited","date","DateTime","fromJSDate","toFormat","modalHeaderText","FormattedMessage","id","defaultMessage","confirmButtonText","async","hours","parseInt","selectedTime","split","minutes","endTime","Date","selectedDate","setHours","actions","setStatus","user_id","userId","status","UserStatuses","DND","dnd_end_time","toUTCUnix","manual","last_activity_at","currentDate","day","setState","_objectSpread","makeTimeMenuList","timeMenuItems","h","m","curr","formatDate","getHours","getMinutes","i","j","t","toString","padStart","push","timeMenuList","isOpen","setDate","getDate","dayPickerStartDate","popperElement","componentDidMount","document","addEventListener","handleKeyDown","componentWillUnmount","removeEventListener","render","getText","map","time","Menu","ItemAction","concat","key","text","ariaLabel","onClick","dispatchEvent","CustomEvent","A11yCustomEventTypes","FOCUS","detail","target","buttonRef","current","keyboardOnly","inputIcon","IconButton","icon","className","size","dayPickerProps","initialFocus","mode","selected","onDayClick","handleDaySelection","disabled","before","showOutsideDays","CompassThemeProvider","theme","GenericModal","compassDesign","localizeMessage","handleConfirm","handleEnterKeyPress","tabIndex","keyboardEscape","DatePicker","locale","datePickerProps","Input","value","readOnly","classNames","label","defineMessage","inputPrefix","MenuWrapper","stopPropagationOnToggle","type","ref","openLeft","_pt","isRequired"],"sourceRoot":""}