ソースを参照

delete localStorage in the reducer. Fix router

Tanya Sashyna 5 年 前
コミット
2da2d6ab6c

+ 4 - 1
src/actions/login.js

@@ -30,7 +30,10 @@ export const postLoginSubmit = payload => {
         dispatch(postLogin())
 
         promise.then(
-            data => data.json().then(data => dispatch(postLoginSuccess(data))),
+            data => data.json().then(data => {
+                writeLocalStorage(data);
+                return dispatch(postLoginSuccess(data))
+            }),
             error => dispatch(postLoginError(error))
         )
     }

+ 3 - 11
src/actions/logout.js

@@ -18,21 +18,13 @@ export const getLogoutUserError = payload => ({
 export const getLogoutUserSubmit = () => {
     return dispatch => {
         let promise = fetch("https://api-marathon.herokuapp.com/api/v1/auth/logout")
-        console.log('getLogoutUserSubmit');
+        //console.log('getLogoutUserSubmit');
 
         dispatch(getLogoutUser())
 
         promise.then(
-            data => data.json().then(data => {
-                localStorage.removeItem('user');
-                dispatch(getLogoutUserSuccess(data))
-        }),
+            data => data.json().then(data => dispatch(getLogoutUserSuccess(data))),
             error => dispatch(getLogoutUserError(error))
         )
     }
-}
-
-// export const clearLocalStorage = () => {
-//     localStorage.removeItem('user');
-//     document.location.reload(true);
-// }
+}

+ 2 - 1
src/components/sidebar/Sidebar.js

@@ -37,8 +37,9 @@ const siteMenu = [
 
 export class Sidebar extends React.Component {
     logoutHandler = () => {
+        localStorage.removeItem('user');
+        this.props.history.push('/');
         this.props.getLogoutUserSubmit()
-        this.props.history.push('/')
     }
 
     render() {

+ 0 - 2
src/conteiners/login/Login.js

@@ -11,8 +11,6 @@ import LoginForm from '../../components/login-form/LoginForm';
 export class Login extends React.Component {
     render() {
         const { postLoginSubmit } = this.props;
-        // const history = this.props.history;
-        //console.log(this.props);
         return (
             <div>
                 <LoginForm postLoginSubmit={postLoginSubmit}/>

+ 2 - 2
src/conteiners/profile/Profile.js

@@ -7,8 +7,8 @@ import Sidebar from '../../components/sidebar/Sidebar';
 
 export class Profile extends React.Component {
     render() {
-	const {user} = this.props;
-	console.log(user);
+    console.log('profileUser',JSON.parse(localStorage.user).user);
+    
         return (
             <>
                 <Sidebar/>

+ 2 - 2
src/private-router.js

@@ -7,9 +7,9 @@ export const PrivateRoute = ({ component: Component, protectedRoute, ...rest })
 		render={props => {
 			if (protectedRoute) {
 				const user = localStorage.getItem("user");
-				console.log('user')
+				//console.log('user')
 				if (!user) {
-					console.log('user')
+					//console.log('user')
 					return <Redirect to="/" />;
 				}
 

+ 4 - 8
src/reducers/login.js

@@ -1,9 +1,7 @@
 import * as types from "../actionTypes/actionTypes";
-import { writeLocalStorage } from "../actions/login";
 
 const initialState = {
-    user: {},
-    showProfile: false
+    user: {}
 }
 
 export default (state = initialState, action) => {
@@ -12,13 +10,11 @@ export default (state = initialState, action) => {
             return state;
         }
 
-        case types.POST_REQUEST_SUCCESS_LOGIN: {
-            writeLocalStorage(action.payload.user);
-            
+        case types.POST_REQUEST_SUCCESS_LOGIN: {   
+            //console.log('action.payload.user',action.payload.user);
             return {
                 ...state,
-                user: action.payload.user,
-				showProfile: true
+                user: action.payload.user
             };
         }
 

+ 1 - 4
src/reducers/logout.js

@@ -1,5 +1,4 @@
 import * as types from "../actionTypes/actionTypes";
-// import { clearLocalStorage } from "../actions/logout";
 
 const initialState = {
     logOut: false
@@ -12,9 +11,7 @@ export default (state = initialState, action) => {
         }
 
         case types.GET_LOGOUT_USER_SUCCESS: {
-            //console.log('logout',action.payload.logOut);
-            // clearLocalStorage();
-            
+            //console.log('logout',action.payload.logOut);            
             return state
         }
 

+ 8 - 6
src/router.js

@@ -126,14 +126,16 @@ const route = [
 ];
 
 const Router = withRouter(({ history, user }) => {
-
 	useEffect(() => {
-		const user = localStorage.getItem("user");
-		if (user) {
-			const userRole = JSON.parse(user).role;
+		const userl = localStorage.getItem("user");
+
+		if (userl) {
+			const userRole = JSON.parse(userl).user.role;
+
 			if (userRole === 'admin') {
 				history.push("/admin");
-            }
+			}
+			
             if (userRole === 'user') {
 				history.push("/profile");
 			}
@@ -164,5 +166,5 @@ const mapStateToProps = state => {
 };
 
 export default connect(
-    mapStateToProps
+	mapStateToProps
 )(Router);