Login complete.
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { apiClient } from "./httpClients";
|
||||
|
||||
export function guard(evaluator, redirect, navigateOptions, onRedirect) {
|
||||
export function guard(navigator, evaluator, redirect, navigateOptions, onRedirect) {
|
||||
if (!evaluator) throw new Error("evaluator required.");
|
||||
if (!redirect) throw new Error("redirect required.");
|
||||
if (!navigateOptions) {
|
||||
@@ -9,16 +8,15 @@ export function guard(evaluator, redirect, navigateOptions, onRedirect) {
|
||||
replace: true
|
||||
};
|
||||
}
|
||||
let navigate = useNavigate();
|
||||
let redirecting = !evaluator();
|
||||
if (redirecting) {
|
||||
if (onRedirect) onRedirect();
|
||||
navigate(redirect, navigateOptions);
|
||||
navigator(redirect, navigateOptions);
|
||||
}
|
||||
}
|
||||
|
||||
export async function needUser() {
|
||||
export async function needUser(navigator) {
|
||||
let userDataResponse = await apiClient.get("/user");
|
||||
guard(() => userDataResponse.status === 200, "/login");
|
||||
guard(navigator, () => userDataResponse.status === 200, "/login");
|
||||
return userDataResponse.data;
|
||||
}
|
Reference in New Issue
Block a user