{"version":3,"file":"js/491-fe4c5510111dddb5ae0c.chunk.js","mappings":"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","sources":["webpack://Maxwell/./app/assets/javascripts/v2/actions/ui_actions/messenger.js","webpack://Maxwell/./app/assets/javascripts/v2/components/Global/Communication/MessengerIcon/index.js","webpack://Maxwell/./app/assets/javascripts/v2/selectors/messenger_info.js"],"sourcesContent":["import Route from 'Services/Route'\nimport { getMessengerViewable } from 'v2/selectors/messenger_info'\nimport { getLoanFileId } from 'v2/selectors/page_info'\nimport api from 'utils/api'\nimport AT from '../../actionTypes'\nimport { getUnreadMessagesCount } from '../../selectors/page_info'\n\nconst toggleClass = function (element, className) {\n const currentClassNameList = element.className.split(' ')\n const classNameIndex = currentClassNameList.indexOf(className)\n const hasClassName = classNameIndex > -1\n if (hasClassName) {\n currentClassNameList.splice(classNameIndex, 1)\n } else {\n currentClassNameList.push(className)\n }\n element.className = currentClassNameList.join(' ')\n}\n\nconst elementHasClass = function (element, className) {\n const classNameList = element.className.split(' ')\n return classNameList.indexOf(className) > -1\n}\n\nconst toggleMessengerClasses = function () {\n const body = document.getElementsByTagName('BODY')[0]\n toggleClass(body, 'open')\n toggleClass(body, 'closed')\n}\n\nexport const closeMessenger = function () {\n const body = document.getElementsByTagName('BODY')[0]\n if (elementHasClass(body, 'closed')) {\n return\n }\n toggleMessengerClasses()\n}\n\nconst openMessenger = function () {\n const body = document.getElementsByTagName('BODY')[0]\n if (elementHasClass(body, 'open')) {\n return\n }\n toggleMessengerClasses()\n}\n\nexport const markMessagesAsSeen = () => async (dispatch, getState) => {\n const unReadMessageCount = getUnreadMessagesCount(getState())\n if (!unReadMessageCount) {\n return\n }\n const loanFileId = getLoanFileId(getState())\n const url = Route.api.loanFile.messenger.toggle({ loanFileId })\n try {\n await api(getState).post(url, {})\n dispatch({ type: AT.RESET_UNREAD_MESSAGES_COUNT })\n } catch (error) {\n // No error handling required as there is no indication on UI\n }\n\n}\n\nexport const initializeMessenger = () => (dispatch, getState) => {\n const messengerViewable = getMessengerViewable(getState())\n\n if (messengerViewable) {\n openMessenger()\n dispatch(markMessagesAsSeen())\n }\n}\n\nexport const toggleMessenger = () => (dispatch, getState) => {\n const messengerViewable = getMessengerViewable(getState())\n if (messengerViewable) {\n closeMessenger()\n } else {\n openMessenger()\n dispatch(markMessagesAsSeen())\n }\n\n dispatch({\n type: AT.SET_MESSENGER_VIEWABLE_STATE,\n payload: !messengerViewable,\n })\n}\n\nexport const setMessengerViewable = () => (dispatch, getState) => {\n const messengerViewable = getMessengerViewable(getState())\n if (!messengerViewable) {\n dispatch({\n type: AT.SET_MESSENGER_VIEWABLE_STATE,\n payload: true,\n })\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport {\n initializeMessenger,\n toggleMessenger,\n} from 'v2/actions/ui_actions/messenger'\nimport { getUnreadMessagesCount } from 'v2/selectors/page_info'\n\nclass MessengerIcon extends React.PureComponent {\n static propTypes = {\n downloadPath: PropTypes.string,\n initialize: PropTypes.func.isRequired,\n toggle: PropTypes.func.isRequired,\n unreadMessageCount: PropTypes.number,\n prependLinks: PropTypes.arrayOf(PropTypes.shape()),\n }\n\n static defaultProps = {\n downloadPath: '',\n unreadMessageCount: 0,\n prependLinks: null,\n }\n\n componentDidMount() {\n const { initialize } = this.props\n initialize()\n }\n\n getScope = () => {\n return window.location.pathname.includes('lenders')\n ? 'lenders'\n : 'borrowers'\n }\n\n onMessageIconClick = () => {\n const { toggle } = this.props\n toggle()\n }\n\n onKeyDown = (event) => {\n if (event.keyCode === 13) {\n this.onMessageIconClick()\n }\n }\n\n stopBubbling = (e) => {\n e.stopPropagation()\n }\n\n render() {\n const { unreadMessageCount, downloadPath, prependLinks } = this.props\n\n const className = this.getScope() === 'lenders' ? '' : 'message-notifier-container-mobile'\n return (\n <div className={`message-notifier-container ${className}`}>\n <div className=\"message-notifier-container__prepend-links\">\n {prependLinks}\n </div>\n <div\n className=\"message-notifier\"\n onClick={this.onMessageIconClick}\n role=\"button\"\n onKeyDown={this.onKeyDown}\n tabIndex=\"0\"\n >\n {unreadMessageCount ? (\n <span className=\"message-notifier-count\">{unreadMessageCount}</span>\n ) : null}\n {this.getScope() === 'lenders' ? (\n <a href={downloadPath} onClick={this.stopBubbling}>\n <i\n id=\"downloadIcon\"\n className=\"glyphicon glyphicon-download-alt comm-download-icon\"\n data-toggle=\"tooltip\"\n data-placement=\"bottom\"\n title=\"Download Messages\"\n />\n </a>\n ) : null}\n </div>\n </div>\n )\n }\n}\n\nconst bindActions = (dispatch) => ({\n initialize: (...args) => dispatch(initializeMessenger(...args)),\n toggle: (...args) => dispatch(toggleMessenger(...args)),\n})\n\nconst mapStateToProps = (state) => ({ unreadMessageCount: getUnreadMessagesCount(state) })\n\nexport default connect(mapStateToProps, bindActions)(MessengerIcon)\n","export const getMessengerInfo = state => state.v2.messengerInfo\n\nexport const getMessengerUiFlags = state => getMessengerInfo(state).uiFlags\n\nexport const getMessengerViewable = state => getMessengerUiFlags(state).messengerViewable\n"],"names":["i","toggleClass","element","className","currentClassNameList","split","classNameIndex","indexOf","splice","push","join","elementHasClass","toggleMessengerClasses","body","document","getElementsByTagName","closeMessenger","openMessenger","markMessagesAsSeen","dispatch","getState","getUnreadMessagesCount","loanFileId","getLoanFileId","url","Route","api","post","type","AT","initializeMessenger","getMessengerViewable","toggleMessenger","messengerViewable","payload","MessengerIcon","getScope","window","location","pathname","includes","onMessageIconClick","toggle","props","onKeyDown","event","keyCode","stopBubbling","e","stopPropagation","initialize","this","unreadMessageCount","downloadPath","prependLinks","onClick","role","tabIndex","href","id","title","React","propTypes","PropTypes","defaultProps","connect","state","v2","messengerInfo","getMessengerInfo","uiFlags","getMessengerUiFlags"],"sourceRoot":""}