{"version":3,"file":"static/js/async/60150.9445657c.js","sources":["webpack://gvirantd/./src/pages/login/components/form/Login.js","webpack://gvirantd/./src/pages/login/index.js"],"sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { Form, Input, Button, Typography } from 'antd';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport Messages from 'i18n/messages/login';\r\nimport Img from 'common/components/image/Image';\r\n\r\nimport RIVIR_LOGO from 'assets/RIVIR_Logo_R3-2C.png';\r\nimport BLUEPRINT_DAYMON_LOGO from 'assets/daymon/Blueprint_Daymon.png';\r\n\r\n/**\r\n * Login.js\r\n * Render the login form component\r\n * @author Brian Pick\r\n */\r\n\r\nconst layout = {\r\n labelCol: {\r\n span: 6,\r\n },\r\n wrapperCol: {\r\n span: 16,\r\n },\r\n};\r\nconst tailLayout = {\r\n wrapperCol: {\r\n offset: 6,\r\n span: 16,\r\n },\r\n};\r\n\r\nconst { Item } = Form;\r\nconst { Password } = Input;\r\nconst { Text } = Typography;\r\n\r\n/**\r\n * User login form\r\n */\r\nfunction Login(props) {\r\n const { onFinish, error, branding, usercls, ...rest } = props;\r\n\r\n const { loginType, isHaveLoginSwitch, switchLoading } = rest;\r\n\r\n const logoSrc = isHaveLoginSwitch\r\n ? loginType === 'daymon'\r\n ? BLUEPRINT_DAYMON_LOGO\r\n : RIVIR_LOGO\r\n : RIVIR_LOGO;\r\n\r\n return (\r\n
\r\n );\r\n}\r\n\r\nLogin.propTypes = {\r\n /**\r\n * a submit action to send post login data\r\n */\r\n onFinish: PropTypes.func,\r\n /**\r\n * response an error for displaying indication message\r\n */\r\n error: PropTypes.string,\r\n};\r\n\r\nexport default Login;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport { Row, Col, Layout, Button } from 'antd';\r\nimport Animate from 'rc-animate';\r\nimport { SwapOutlined } from '@ant-design/icons';\r\n\r\nimport WithIndicator from 'common/components/wrapper/WithIndicator';\r\n\r\nimport { LoginForm } from './components';\r\nimport Intro from './introduction';\r\n\r\nimport userSelector from '@redux/user/selectors';\r\nimport * as userActions from '@redux/user/actions';\r\nimport * as brandingSelectors from '@redux/branding/selectors';\r\n\r\nimport { isAuthed } from 'utils/common/session';\r\n\r\nimport { getParameterFromQuery } from 'utils/common/route';\r\n\r\nimport { sleep } from 'utils/delay';\r\n\r\nimport './style.less';\r\nconst loginTypeDefine = ['daymon', 'rivir'];\r\nconst loginTypeDefault = loginTypeDefine?.[0];\r\n\r\n/**\r\n * Main login page\r\n */\r\nconst LogIn = ({ from, isHaveLoginSwitch = false }) => {\r\n const [loginType, setLoginType] = useState(loginTypeDefault);\r\n const [switchLoading, setSwitchLoading] = useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n // selectors\r\n const loading = useSelector(userSelector.selectUserLoading());\r\n const error = useSelector(userSelector.selectUserError());\r\n const branding = useSelector(brandingSelectors.getBranding());\r\n\r\n /**\r\n * Go to register page\r\n */\r\n function toSignIn() {\r\n dispatch(userActions.reset());\r\n history.push('register');\r\n }\r\n\r\n /**\r\n * display login action with username/password\r\n * @param {object} values login information\r\n */\r\n const onFinish = (values) => {\r\n dispatch(userActions.login(values));\r\n };\r\n\r\n const toSwitchLoginType = async () => {\r\n setSwitchLoading(true);\r\n if (loginType === 'rivir') {\r\n setLoginType('daymon');\r\n } else {\r\n setLoginType('rivir');\r\n }\r\n await sleep(1400);\r\n setSwitchLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n // check if user is in session, redirect to '/waiting'\r\n if (isAuthed()) {\r\n const returnUrl = getParameterFromQuery('returnUrl') || '/';\r\n history.push(`/waiting?returnUrl=${returnUrl}`);\r\n }\r\n }, []);\r\n\r\n return (\r\n