From 622c97a99f4852478a8c3a7bdd16963e9dce5ff0 Mon Sep 17 00:00:00 2001 From: Youssef Date: Mon, 21 Feb 2022 14:05:11 +0100 Subject: [PATCH] feat: add redirect to all auth components --- .../user/Authentication/Authentication.tsx | 20 +++++++++++++------ .../src/component/user/DemoAuth/DemoAuth.jsx | 4 ++-- .../component/user/HostedAuth/HostedAuth.jsx | 4 ++-- frontend/src/component/user/Login/Login.tsx | 6 ++---- .../user/PasswordAuth/PasswordAuth.jsx | 5 +++-- .../component/user/SimpleAuth/SimpleAuth.jsx | 4 ++-- 6 files changed, 25 insertions(+), 18 deletions(-) diff --git a/frontend/src/component/user/Authentication/Authentication.tsx b/frontend/src/component/user/Authentication/Authentication.tsx index 4137ac2000..fcc27976c2 100644 --- a/frontend/src/component/user/Authentication/Authentication.tsx +++ b/frontend/src/component/user/Authentication/Authentication.tsx @@ -15,7 +15,10 @@ import ConditionallyRender from '../../common/ConditionallyRender'; import { Alert } from '@material-ui/lab'; import { useAuthDetails } from '../../../hooks/api/getters/useAuth/useAuthDetails'; -const Authentication = () => { +interface IAuthenticationProps { + redirect: string; +} +const Authentication = ({ redirect }: IAuthenticationProps) => { const { authDetails } = useAuthDetails(); const params = useQueryParams(); @@ -26,7 +29,7 @@ const Authentication = () => { if (authDetails.type === PASSWORD_TYPE) { content = ( <> - + } @@ -34,13 +37,13 @@ const Authentication = () => { ); } else if (authDetails.type === SIMPLE_TYPE) { - content = ; + content = ; } else if (authDetails.type === DEMO_TYPE) { - content = ; + content = ; } else if (authDetails.type === HOSTED_TYPE) { content = ( <> - + } @@ -48,7 +51,12 @@ const Authentication = () => { ); } else { - content = ; + content = ( + + ); } return ( <> diff --git a/frontend/src/component/user/DemoAuth/DemoAuth.jsx b/frontend/src/component/user/DemoAuth/DemoAuth.jsx index 8fa4dd880c..550b0ea4d7 100644 --- a/frontend/src/component/user/DemoAuth/DemoAuth.jsx +++ b/frontend/src/component/user/DemoAuth/DemoAuth.jsx @@ -9,7 +9,7 @@ import { useAuthApi } from '../../../hooks/api/actions/useAuthApi/useAuthApi'; import { useAuthUser } from '../../../hooks/api/getters/useAuth/useAuthUser'; import useToast from '../../../hooks/useToast'; -const DemoAuth = ({ authDetails }) => { +const DemoAuth = ({ authDetails, redirect }) => { const [email, setEmail] = useState(''); const history = useHistory(); const { refetchUser } = useAuthUser(); @@ -22,7 +22,7 @@ const DemoAuth = ({ authDetails }) => { try { await emailAuth(authDetails.path, email); refetchUser(); - history.push(`/`); + history.push(redirect); } catch (e) { setToastApiError(e.toString()); } diff --git a/frontend/src/component/user/HostedAuth/HostedAuth.jsx b/frontend/src/component/user/HostedAuth/HostedAuth.jsx index ce75206ebf..c738ca13ca 100644 --- a/frontend/src/component/user/HostedAuth/HostedAuth.jsx +++ b/frontend/src/component/user/HostedAuth/HostedAuth.jsx @@ -18,7 +18,7 @@ import { LOGIN_PASSWORD_ID, } from '../../../testIds'; -const HostedAuth = ({ authDetails }) => { +const HostedAuth = ({ authDetails, redirect }) => { const commonStyles = useCommonStyles(); const styles = useStyles(); const { refetchUser } = useAuthUser(); @@ -55,7 +55,7 @@ const HostedAuth = ({ authDetails }) => { try { await passwordAuth(authDetails.path, username, password); refetchUser(); - history.push(`/`); + history.push(redirect); } catch (error) { if (error.statusCode === 404 || error.statusCode === 400) { setErrors(prev => ({ diff --git a/frontend/src/component/user/Login/Login.tsx b/frontend/src/component/user/Login/Login.tsx index efa57810f3..03ef1bcb25 100644 --- a/frontend/src/component/user/Login/Login.tsx +++ b/frontend/src/component/user/Login/Login.tsx @@ -17,11 +17,9 @@ const Login = () => { const resetPassword = query.get('reset') === 'true'; const redirect = query.get('redirect') || '/features'; const history = useHistory(); - console.log(redirect); if (user) { - console.log(redirect); - history.push(redirect); + history.replace(redirect); } return ( @@ -40,7 +38,7 @@ const Login = () => { condition={resetPassword} show={} /> - + ); diff --git a/frontend/src/component/user/PasswordAuth/PasswordAuth.jsx b/frontend/src/component/user/PasswordAuth/PasswordAuth.jsx index 3c2fbcc965..2340aba5c5 100644 --- a/frontend/src/component/user/PasswordAuth/PasswordAuth.jsx +++ b/frontend/src/component/user/PasswordAuth/PasswordAuth.jsx @@ -19,7 +19,7 @@ import PasswordField from '../../common/PasswordField/PasswordField'; import { useAuthApi } from '../../../hooks/api/actions/useAuthApi/useAuthApi'; import { useAuthUser } from '../../../hooks/api/getters/useAuth/useAuthUser'; -const PasswordAuth = ({ authDetails }) => { +const PasswordAuth = ({ authDetails, redirect }) => { const commonStyles = useCommonStyles(); const styles = useStyles(); const history = useHistory(); @@ -56,7 +56,8 @@ const PasswordAuth = ({ authDetails }) => { try { await passwordAuth(authDetails.path, username, password); refetchUser(); - history.push(`/`); + console.log('hio') + history.push(redirect); } catch (error) { if (error.statusCode === 404 || error.statusCode === 400) { setErrors(prev => ({ diff --git a/frontend/src/component/user/SimpleAuth/SimpleAuth.jsx b/frontend/src/component/user/SimpleAuth/SimpleAuth.jsx index ede999d2ca..c9dfb9e66b 100644 --- a/frontend/src/component/user/SimpleAuth/SimpleAuth.jsx +++ b/frontend/src/component/user/SimpleAuth/SimpleAuth.jsx @@ -8,7 +8,7 @@ import { useAuthUser } from '../../../hooks/api/getters/useAuth/useAuthUser'; import { LOGIN_BUTTON, LOGIN_EMAIL_ID } from '../../../testIds'; import useToast from '../../../hooks/useToast'; -const SimpleAuth = ({ authDetails }) => { +const SimpleAuth = ({ authDetails, redirect }) => { const [email, setEmail] = useState(''); const { refetchUser } = useAuthUser(); const { emailAuth } = useAuthApi(); @@ -21,7 +21,7 @@ const SimpleAuth = ({ authDetails }) => { try { await emailAuth(authDetails.path, email); refetchUser(); - history.push(`/`); + history.push(redirect); } catch (e) { setToastApiError(e.toString()); }