Fix redirect on SSO login (#142), #27, #94
authorAjay Bura <ajbura@gmail.com>
Tue, 19 Oct 2021 14:08:09 +0000 (19:38 +0530)
committerKrishan <33421343+kfiven@users.noreply.github.com>
Mon, 25 Oct 2021 12:29:57 +0000 (17:59 +0530)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
src/app/pages/App.jsx
src/app/templates/auth/Auth.jsx

index bb26505609efed7757386c8a9d3015dd82c2eaac..ad73e989030a86e0309277e580078a40402b4ff9 100644 (file)
@@ -1,6 +1,6 @@
 import React from 'react';
 import {
-  BrowserRouter, Switch, Route, Redirect,
+  BrowserRouter,
 } from 'react-router-dom';
 
 import { isAuthenticated } from '../../client/state/auth';
@@ -11,17 +11,7 @@ import Client from '../templates/client/Client';
 function App() {
   return (
     <BrowserRouter>
-      <Switch>
-        <Route exact path="/">
-          { isAuthenticated() ? <Client /> : <Redirect to="/login" />}
-        </Route>
-        <Route path="/login">
-          { isAuthenticated() ? <Redirect to="/" /> : <Auth type="login" />}
-        </Route>
-        <Route path="/register">
-          { isAuthenticated() ? <Redirect to="/" /> : <Auth type="register" />}
-        </Route>
-      </Switch>
+      { isAuthenticated() ? <Client /> : <Auth />}
     </BrowserRouter>
   );
 }
index 3eaf16a89b4b6a6f0df314b193b623cf88aacf82..f2d2b1eb47ae20bc54ad248e56720b809761fdad 100644 (file)
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
 import './Auth.scss';
 import ReCAPTCHA from 'react-google-recaptcha';
 
-import { Link, useLocation } from 'react-router-dom';
+import { useLocation } from 'react-router-dom';
 import * as auth from '../../../client/action/auth';
 import cons from '../../../client/state/cons';
 
@@ -75,7 +75,8 @@ function normalizeUsername(rawUsername) {
   return noLeadingAt.trim();
 }
 
-function Auth({ type }) {
+function Auth() {
+  const [type, setType] = useState('login');
   const [process, changeProcess] = useState(null);
   const [homeserver, changeHomeserver] = useState('matrix.org');
 
@@ -316,9 +317,16 @@ function Auth({ type }) {
         <div className="flex--center">
           <Text variant="b2">
             {`${(type === 'login' ? 'Don\'t have' : 'Already have')} an account?`}
-            <Link to={type === 'login' ? '/register' : '/login'}>
+            <button
+              type="button"
+              style={{ color: 'var(--tc-link)', cursor: 'pointer', margin: '0 var(--sp-ultra-tight)' }}
+              onClick={() => {
+                if (type === 'login') setType('register');
+                else setType('login');
+              }}
+            >
               { type === 'login' ? ' Register' : ' Login' }
-            </Link>
+            </button>
           </Text>
         </div>
       </StaticWrapper>
@@ -326,10 +334,6 @@ function Auth({ type }) {
   );
 }
 
-Auth.propTypes = {
-  type: PropTypes.string.isRequired,
-};
-
 function StaticWrapper({ children }) {
   return (
     <ScrollView invisible>