-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDay4Notes.js
49 lines (40 loc) · 1.42 KB
/
Day4Notes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// 1) pasar a la siguiente pagina si la login action funciona
login = (e) => {
e.preventDefault();
const loginAction = loginCreator(this.state.email, this.state.password);
this.props.dispatch(loginAction)
.then(() => {
console.log('finished')
this.props.history.push('/feed');
});
}
/* -- Token Info Kept -- */
// localStorage: solo retiene la info de un especifico URL
localStorage.clear();
localStorage.setItem('myToken', 'secretToken'); //
localStorage.getItem('myToken');
// 2) guardar el token para mantener la sesion - index.js
const checkLocalUser = () => {
const token = localStorage.getItem('token'); // variable as its in the fetch function
const user = {
token: token,
};
store.dispatch(setCurrentUser(user)); // guarda el token en el store - from the index.js manda la info del user a todas las pages
}
checkLocalUser();
/* --- Middleware personalizado --- */
// - para filtrar comentarios ofensivos por ejemplo
// - aparte de usar thunk
// - se llama con cada action que dispatchea
// 1) Crear: store/middleware.js
const loginMiddleware = (store) => (next) => (action) => { // store=gives access to the state / next= paracontinuar con la cadena de acciones
return next(action);
}
export default loginMiddleware;
// (store) = ({ dispatch, getState })
// 2) En store.js
const store = createStore(
reducers,
applyMiddleware(loginMiddleware, thunk)
);
export default store;