Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. import React from 'react';
  2. import { AUTH_TOKEN, USER } from '../constants';
  3.  
  4. const AuthContext = React.createContext();
  5.  
  6. class AuthProvider extends React.Component {
  7. constructor() {
  8. super();
  9. this.state = {
  10. authToken: '',
  11. user: {}
  12. };
  13. this.login = this.login.bind(this);
  14. this.logout = this.logout.bind(this);
  15. this.setState.bind(this);
  16. }
  17.  
  18. login(token, user) {
  19. // console log shows
  20. console.log('Auth Context Login running...', token, user);
  21. // this code doesn't seem to run???? No errors
  22. this.setState({ authToken: token, user: user }, () => {
  23. console.log('after update provider.. ', this.state);
  24. localStorage.setItem(AUTH_TOKEN, token);
  25. localStorage.setItem(USER, user);
  26. });
  27. }
  28. logout() {
  29. console.log('Auth Context Logout running...');
  30. localStorage.removeItem(AUTH_TOKEN);
  31. localStorage.removeItem(USER);
  32. this.setState({ authToken: '', user: {} });
  33. }
  34.  
  35. componentDidMount() {
  36. this.setState({
  37. authToken: JSON.parse(localStorage.getItem(AUTH_TOKEN)),
  38. user: JSON.parse(localStorage.getItem(USER))
  39. });
  40. }
  41. render() {
  42. return (
  43. <AuthContext.Provider
  44. value={{
  45. authToken: this.state.authToken,
  46. user: this.state.user,
  47. login: this.login,
  48. logout: this.logout
  49. }}
  50. >
  51. {this.props.children}
  52. </AuthContext.Provider>
  53. );
  54. }
  55. }
  56.  
  57. const AuthConsumer = AuthContext.Consumer;
  58.  
  59. export { AuthProvider, AuthConsumer };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement