Added update function to reload user information without re-logging in
This commit is contained in:
@@ -20,6 +20,7 @@ type AuthContextType = {
|
||||
loading: boolean;
|
||||
login: () => void;
|
||||
logout: () => Promise<void>;
|
||||
update: () => Promise<boolean>;
|
||||
};
|
||||
|
||||
const AuthContext = createContext<AuthContextType>({
|
||||
@@ -27,6 +28,9 @@ const AuthContext = createContext<AuthContextType>({
|
||||
loading: false,
|
||||
login: () => {},
|
||||
logout: async () => {},
|
||||
update: async () => {
|
||||
return false;
|
||||
},
|
||||
});
|
||||
|
||||
export function AuthProvider({ children }: PropsWithChildren) {
|
||||
@@ -70,24 +74,7 @@ export function AuthProvider({ children }: PropsWithChildren) {
|
||||
});
|
||||
}
|
||||
|
||||
let data = await fetch(`${import.meta.env.VITE_BASE_API_URL}/me`, {
|
||||
credentials: "include",
|
||||
})
|
||||
.then((r) => r.json())
|
||||
.catch((e) => {
|
||||
notify(
|
||||
{
|
||||
type: "danger",
|
||||
loading: false,
|
||||
title: "An error occured.",
|
||||
message: `An error occured: ${e}`,
|
||||
},
|
||||
10000,
|
||||
);
|
||||
});
|
||||
|
||||
if (data !== undefined) {
|
||||
setUser(data);
|
||||
if (await update()) {
|
||||
notify(
|
||||
{
|
||||
type: "success",
|
||||
@@ -98,7 +85,6 @@ export function AuthProvider({ children }: PropsWithChildren) {
|
||||
2000,
|
||||
);
|
||||
}
|
||||
|
||||
setLoading(false);
|
||||
};
|
||||
|
||||
@@ -140,8 +126,32 @@ export function AuthProvider({ children }: PropsWithChildren) {
|
||||
});
|
||||
};
|
||||
|
||||
const update = async () => {
|
||||
let data = await fetch(`${import.meta.env.VITE_BASE_API_URL}/me`, {
|
||||
credentials: "include",
|
||||
})
|
||||
.then((r) => r.json())
|
||||
.catch((e) => {
|
||||
notify(
|
||||
{
|
||||
type: "danger",
|
||||
loading: false,
|
||||
title: "An error occured.",
|
||||
message: `An error occured: ${e}`,
|
||||
},
|
||||
10000,
|
||||
);
|
||||
});
|
||||
|
||||
if (data !== undefined) {
|
||||
setUser(data);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
return (
|
||||
<AuthContext.Provider value={{ user, loading, login, logout }}>
|
||||
<AuthContext.Provider value={{ user, loading, login, logout, update }}>
|
||||
{children}
|
||||
</AuthContext.Provider>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user