Browse Source

removed cliping of login page when loading tracim with auth cookie

Skylsmoi 6 years ago
parent
commit
ba8b640c0c
3 changed files with 7 additions and 7 deletions
  1. 4 2
      src/container/PrivateRoute.jsx
  2. 2 4
      src/container/Tracim.jsx
  3. 1 1
      src/reducer/user.js

+ 4 - 2
src/container/PrivateRoute.jsx View File

9
 // "You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored
9
 // "You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored
10
 const PrivateRoute = ({ component: Component, ...rest }) => (
10
 const PrivateRoute = ({ component: Component, ...rest }) => (
11
   <Route {...rest} render={props => rest.user.logged
11
   <Route {...rest} render={props => rest.user.logged
12
-    ? <Component {...props} />
13
-    : <Redirect to={{pathname: '/login', state: {from: props.location}}} />
12
+    ? <Component {...props} /> // user logged, return composant
13
+    : rest.user.logged === null
14
+      ? <div /> // dont know if user logged yet (waiting for api to respond), do nothing @TODO display loader
15
+      : <Redirect to={{pathname: '/login', state: {from: props.location}}} /> // // user not logged, redirect to login page
14
   } />
16
   } />
15
 )
17
 )
16
 
18
 

+ 2 - 4
src/container/Tracim.jsx View File

32
       auth: Cookies.get('user_auth')
32
       auth: Cookies.get('user_auth')
33
     }
33
     }
34
 
34
 
35
-    if (userFromCookies.email === undefined || userFromCookies.auth === undefined) return
36
-
37
     const fetchGetUserIsConnected = await dispatch(getUserIsConnected(userFromCookies))
35
     const fetchGetUserIsConnected = await dispatch(getUserIsConnected(userFromCookies))
38
     switch (fetchGetUserIsConnected.status) {
36
     switch (fetchGetUserIsConnected.status) {
39
       case 200:
37
       case 200:
46
       case 401:
44
       case 401:
47
         dispatch(setUserConnected({logged: false})); break
45
         dispatch(setUserConnected({logged: false})); break
48
       default:
46
       default:
49
-        dispatch(setUserConnected({logged: undefined})); break
47
+        dispatch(setUserConnected({logged: null})); break
50
     }
48
     }
51
   }
49
   }
52
 
50
 
53
   handleRemoveFlashMessage = msg => this.props.dispatch(removeFlashMessage(msg))
51
   handleRemoveFlashMessage = msg => this.props.dispatch(removeFlashMessage(msg))
54
 
52
 
55
   render () {
53
   render () {
56
-    const { flashMessage, t } = this.props
54
+    const { flashMessage, user, t } = this.props
57
 
55
 
58
     return (
56
     return (
59
       <div className='tracim'>
57
       <div className='tracim'>

+ 1 - 1
src/reducer/user.js View File

6
 
6
 
7
 const defaultUser = {
7
 const defaultUser = {
8
   user_id: -1,
8
   user_id: -1,
9
-  logged: false, // undefined avoid to be redirected to /login while whoami ep has not responded yet
9
+  logged: null, // null avoid to be redirected to /login while whoami ep has not responded yet
10
   timezone: '',
10
   timezone: '',
11
   profile: {
11
   profile: {
12
     id: 1,
12
     id: 1,