auth WIP 2
This commit is contained in:
@ -9,7 +9,7 @@ type AuthContextType = {
|
||||
|
||||
const AuthContext = createContext<AuthContextType>({
|
||||
token: null,
|
||||
setToken: () => { },
|
||||
setToken: () => {},
|
||||
});
|
||||
|
||||
|
||||
@ -20,15 +20,19 @@ export const AuthProvider = ({ children }: { children: JSX.Element }) => {
|
||||
const savedToken = localStorage.getItem("token");
|
||||
if (savedToken) {
|
||||
setTokenState(savedToken);
|
||||
console.log("meow")
|
||||
}
|
||||
console.log(savedToken)
|
||||
}, []);
|
||||
|
||||
const setToken = (newToken: string | null) => {
|
||||
setTokenState(newToken);
|
||||
if (newToken) {
|
||||
localStorage.setItem("token", newToken);
|
||||
console.log("saved")
|
||||
} else {
|
||||
localStorage.removeItem("token");
|
||||
console.log("removed")
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -3,9 +3,7 @@ import AuthContext from "./auth-provider"
|
||||
|
||||
|
||||
function useAuth() {
|
||||
return (
|
||||
useContext(AuthContext)
|
||||
);
|
||||
return useContext(AuthContext);
|
||||
}
|
||||
|
||||
export default useAuth;
|
||||
|
||||
@ -1,12 +1,15 @@
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import useAuth from "./auth";
|
||||
|
||||
const logout = () => {
|
||||
// eslint-disable-next-line react-hooks/rules-of-hooks
|
||||
const { setToken: setAuth } = useAuth();
|
||||
|
||||
const useLogout = () => {
|
||||
const { setToken } = useAuth();
|
||||
const navigate = useNavigate();
|
||||
|
||||
return () => {
|
||||
setAuth(false);
|
||||
setToken(null);
|
||||
navigate("/login");
|
||||
};
|
||||
}
|
||||
|
||||
export default logout;
|
||||
export default useLogout;
|
||||
|
||||
@ -1,16 +1,10 @@
|
||||
const ping = () => {
|
||||
const ping = async (token: string | null): Promise<boolean> => {
|
||||
// TODO: request to API
|
||||
return () => {
|
||||
return true;
|
||||
};
|
||||
}
|
||||
|
||||
// const ping = async (token: string): Promise<boolean> => {
|
||||
// return new Promise((resolve) => {
|
||||
// setTimeout(() => {
|
||||
// resolve(!!token);
|
||||
// }, 300);
|
||||
// });
|
||||
// };
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
resolve(!!token);
|
||||
}, 300);
|
||||
});
|
||||
};
|
||||
|
||||
export default ping;
|
||||
|
||||
Reference in New Issue
Block a user