{"version":3,"sources":["pages/LoginSuccess/index.js","pages/LoginSuccess/LoginSuccessContent.js","pages/LoginSuccess/connect.js","pages/LoginSuccess/preload.js"],"names":["page","LoginSuccessContent","getSafeUrl","url","toLowerCase","undefined","props","redirect","getUser","all","qbCheck","entMobileSuccess","force","finishUrl","Storage","session","getItem","value","resolved","removeItem","updateChatInformationFromStore","store","pageState","setCookie","completeWorkflow","rememberMe","quickBalance","resolve","navigator","cookieEnabled","cookies","token","isRemembered","qbEnroll","noop","then","key","COOKIE","REMEMBER_ME","QUICK_BALANCE","WORKFLOW","LOGIN_SUCCESS","addMessage","api","method","data","autoUpdateWorkflows","retainMessageQueue","response","text","message","autoPublishMessages","entMobile","dispatch","type","ENT_MOBILE_ACTION","payload","initCookies","this","showDisabledMessage","apiSuccess","complete","className","Component","propTypes","PropTypes","object","isRequired","func","defaultProps","compose","connect","connectConfig","withApi","withPageState","pageStateConfig","withRouter","withWorkflow","withMessages","clearOnUnload","state","selectCookies","removePageState","preload","PAGE","Services","Profile","Statements","TransferShare","TransferLoan"],"mappings":"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","file":"js/105.6d3d9acf.js","sourcesContent":["import { page } from '~/hocs';\n\nimport LoginSuccessContent from './LoginSuccessContent';\n\nexport default page()(LoginSuccessContent);\n","// eslint-disable-next-line no-unused-vars\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { compose } from 'redux';\nimport { connect } from 'react-redux';\nimport { withPageState } from '@ent/redux-pagestate';\nimport { noop } from '@ent/functional';\n\nimport { ENT_MOBILE_ACTION, WORKFLOW } from '~/constants';\nimport { entMobile, Storage, updateChatInformationFromStore } from '~/common';\nimport { withApi, withMessages, withRouter, withWorkflow } from '~/hocs';\nimport { COOKIE } from '~/store/cookie';\nimport pageStateConfig from '~/pages/LoginUsername/page-state';\nimport { store } from '~/store';\n\nimport connectConfig from './connect';\nimport preload from './preload';\n\nconst getSafeUrl = url => (url && url.toLowerCase().startsWith('/banking/') ? url : undefined);\n\nclass LoginSuccessContent extends Component {\n componentDidMount() {\n const { initCookies } = this.props;\n initCookies({ showDisabledMessage: false })\n .then(this.apiSuccess)\n .then(this.complete);\n }\n\n complete = async () => {\n const { redirect, getUser } = this.props;\n const [finishUrl] = await Promise.all([\n this.qbCheck(),\n this.entMobileSuccess(),\n // NOTE: Force rehydration of the user object to remove the partial user object used during auth\n getUser({ force: true }),\n preload(),\n ]);\n const url = getSafeUrl(Storage.session.getItem('returnUrl').value.resolved())\n || getSafeUrl(finishUrl)\n || '/Banking/app/accounts';\n Storage.session.removeItem('returnUrl');\n updateChatInformationFromStore(store);\n redirect(url);\n };\n\n qbCheck = () => {\n const { pageState, setCookie, completeWorkflow } = this.props;\n const { rememberMe, quickBalance } = pageState;\n\n return new Promise(resolve => {\n if (rememberMe && quickBalance && navigator.cookieEnabled) {\n const { cookies: { quickBalance: token, rememberMe: isRemembered } } = this.props;\n const unchanged = rememberMe === isRemembered;\n return resolve(token && unchanged ? { token } : this.qbEnroll());\n }\n return resolve();\n })\n .catch(noop)\n .then(({ token } = {}) => {\n setCookie({ key: COOKIE.REMEMBER_ME, value: rememberMe });\n setCookie({ key: COOKIE.QUICK_BALANCE, value: token });\n return completeWorkflow(WORKFLOW.LOGIN_SUCCESS);\n });\n };\n\n qbEnroll = async () => {\n const { addMessage, api } = this.props;\n\n try {\n const response = await api({\n url: '/Banking/api/quickbalance/enroll',\n method: 'POST',\n data: null,\n autoUpdateWorkflows: false,\n retainMessageQueue: true,\n });\n\n return response;\n } catch (e) {\n addMessage({ text: e.message });\n return undefined;\n }\n };\n\n apiSuccess = async () => {\n const { addMessage, api } = this.props;\n\n try {\n await api({\n url: '/Banking/api/authentication/success',\n method: 'POST',\n data: null,\n autoUpdateWorkflows: false,\n autoPublishMessages: true,\n });\n } catch (e) {\n // TODO: Handle case when response.success is false by redirecting to first workflow.\n addMessage({ text: e.message });\n }\n };\n\n entMobileSuccess = () => entMobile.dispatch({\n type: ENT_MOBILE_ACTION.LOGIN_SUCCESS,\n payload: Storage.session.getItem('reCaptchaToken').value.resolved(),\n }).catch(noop);\n\n render() {\n return
Loading...
;\n }\n}\n\nLoginSuccessContent.propTypes = {\n // connect\n cookies: PropTypes.object.isRequired,\n initCookies: PropTypes.func.isRequired,\n setCookie: PropTypes.func.isRequired,\n getUser: PropTypes.func.isRequired,\n // withApi\n api: PropTypes.func.isRequired,\n // withMessages\n addMessage: PropTypes.func.isRequired,\n // withRouter\n redirect: PropTypes.func.isRequired,\n // withPageState\n pageState: PropTypes.object.isRequired,\n // withWorkflow\n completeWorkflow: PropTypes.func.isRequired,\n};\n\nLoginSuccessContent.defaultProps = {};\n\nexport default compose(\n connect(...connectConfig),\n withApi(),\n withPageState(pageStateConfig),\n withRouter(),\n withWorkflow(),\n withMessages({ clearOnUnload: true })\n)(LoginSuccessContent);\n","import { remove as removePageState } from '@ent/redux-pagestate';\n\nimport { initCookies, selectCookies, setCookie } from '~/store/cookie';\nimport { getUser } from '~/store/user';\n\nconst select = state => ({ cookies: selectCookies(state) });\n\nconst boundActions = {\n initCookies,\n removePageState,\n setCookie,\n getUser,\n};\n\nexport default [select, boundActions];\n","import { preload } from '~/common';\nimport PAGE from '~/pages';\n\nexport default () => preload(PAGE.Services, PAGE.Profile, PAGE.Statements, PAGE.TransferShare, PAGE.TransferLoan);\n"],"sourceRoot":""}