Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

userContext.js 859B

1234567891011121314151617181920212223242526272829303132
  1. import { createContext, useEffect, useState } from "react";
  2. import { useNavigate } from "react-router-dom";
  3. import axios from "axios";
  4. export const UserContext = createContext();
  5. export const UserProvider = (props) => {
  6. const [user, setUser] = useState(null);
  7. const navigate = useNavigate();
  8. if (JSON.parse(localStorage.getItem('user'))) {
  9. axios.defaults.headers.common['Authorization'] = `Bearer ${JSON.parse(localStorage.getItem('user')).token}`;
  10. }
  11. useEffect(() => {
  12. if (localStorage.getItem("user") !== undefined) {
  13. setUser(JSON.parse(localStorage.getItem("user")));
  14. }
  15. }, []);
  16. const logOut = () => {
  17. localStorage.removeItem("user");
  18. setUser(null);
  19. navigate("/login");
  20. };
  21. return (
  22. <UserContext.Provider value={{ user, setUser, logOut }}>
  23. {props.children}
  24. </UserContext.Provider>
  25. );
  26. };