handling all of the stuff with header logout and handling better jwttoken
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
import { useAuthCheck, useLogin } from "../../controller/index";
|
||||
|
||||
import { $authTokens } from "../../controller/recoil";
|
||||
import { $jwtToken } from "../../controller/recoil";
|
||||
import Login from "../../pages/Login";
|
||||
import NirvanaApi from "../../controller/nirvanaApi";
|
||||
import { STORE_ITEMS } from "../../electron/constants";
|
||||
import SkeletonLoader from "../loading/skeleton";
|
||||
import { useEffect } from "react";
|
||||
import { useRecoilState } from "recoil";
|
||||
|
||||
export default function ProtectedRoute({
|
||||
children,
|
||||
@@ -14,6 +15,8 @@ export default function ProtectedRoute({
|
||||
}) {
|
||||
const { isLoading, isError, isSuccess, refetch } = useAuthCheck();
|
||||
|
||||
const [jwtToken, setJwtToken] = useRecoilState($jwtToken);
|
||||
|
||||
useEffect(() => {
|
||||
// on load of this, if we already have jwt tokens in store,
|
||||
// then try using them with auth check
|
||||
@@ -27,6 +30,17 @@ export default function ProtectedRoute({
|
||||
});
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (jwtToken) {
|
||||
window.electronAPI.store.set(STORE_ITEMS.AUTH_SESSION_JWT, jwtToken);
|
||||
} else {
|
||||
window.electronAPI.store.set(STORE_ITEMS.AUTH_SESSION_JWT, null);
|
||||
}
|
||||
|
||||
NirvanaApi._jwtToken = jwtToken;
|
||||
refetch();
|
||||
}, [jwtToken]);
|
||||
|
||||
if (isLoading) {
|
||||
return (
|
||||
<div className="container h-screen w-screen flex flex-col justify-center mx-10">
|
||||
|
||||
@@ -18,19 +18,19 @@ export function UserStatusBubble(props: { status: UserStatus }) {
|
||||
switch (props.status) {
|
||||
case UserStatus.ONLINE:
|
||||
return (
|
||||
<span className="absolute -bottom-1 -right-1 rounded-full bg-emerald-600 h-3 w-3 border border-zinc-300"></span>
|
||||
<span className="absolute -bottom-1 -right-1 rounded-full bg-emerald-600 h-3 w-3 border"></span>
|
||||
);
|
||||
case UserStatus.OFFLINE:
|
||||
return (
|
||||
<span className="absolute -bottom-1 -right-1 rounded-full bg-zinc-400 h-3 w-3 border border-zinc-300"></span>
|
||||
<span className="absolute -bottom-1 -right-1 rounded-full bg-zinc-400 h-3 w-3 border"></span>
|
||||
);
|
||||
case UserStatus.FLOW_STATE:
|
||||
return (
|
||||
<span className="absolute -bottom-1 -right-1 rounded-full bg-pink-400 h-3 w-3 border border-zinc-300"></span>
|
||||
<span className="absolute -bottom-1 -right-1 rounded-full bg-pink-400 h-3 w-3 border"></span>
|
||||
);
|
||||
default:
|
||||
return (
|
||||
<span className="absolute -bottom-1 -right-1 rounded-full bg-pink-400 h-3 w-3 border border-zinc-300"></span>
|
||||
<span className="absolute -bottom-1 -right-1 rounded-full bg-pink-400 h-3 w-3 border"></span>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user