Podpora easter eggů
This commit is contained in:
@@ -5,6 +5,7 @@ import { deleteToken, getToken, storeToken } from "../Utils";
|
||||
|
||||
export type AuthContextProps = {
|
||||
login?: string,
|
||||
trusted?: boolean,
|
||||
setToken: (name: string) => void,
|
||||
logout: () => void,
|
||||
}
|
||||
@@ -26,6 +27,7 @@ export const useAuth = () => {
|
||||
|
||||
function useProvideAuth(): AuthContextProps {
|
||||
const [loginName, setLoginName] = useState<string | undefined>();
|
||||
const [trusted, setTrusted] = useState<boolean | undefined>();
|
||||
const [token, setToken] = useState<string | null>(getToken());
|
||||
const { decodedToken } = useJwt(token || '');
|
||||
|
||||
@@ -40,8 +42,10 @@ function useProvideAuth(): AuthContextProps {
|
||||
useEffect(() => {
|
||||
if (decodedToken) {
|
||||
setLoginName((decodedToken as any).login);
|
||||
setTrusted((decodedToken as any).trusted);
|
||||
} else {
|
||||
setLoginName(undefined);
|
||||
setTrusted(undefined);
|
||||
}
|
||||
}, [decodedToken]);
|
||||
|
||||
@@ -50,6 +54,7 @@ function useProvideAuth(): AuthContextProps {
|
||||
const logoutUrl = (decodedToken as any).logoutUrl;
|
||||
setToken(null);
|
||||
setLoginName(undefined);
|
||||
setTrusted(undefined);
|
||||
if (trusted && logoutUrl?.length) {
|
||||
window.location.replace(logoutUrl);
|
||||
}
|
||||
@@ -57,6 +62,7 @@ function useProvideAuth(): AuthContextProps {
|
||||
|
||||
return {
|
||||
login: loginName,
|
||||
trusted,
|
||||
setToken,
|
||||
logout,
|
||||
}
|
||||
|
||||
24
client/src/context/eggs.tsx
Normal file
24
client/src/context/eggs.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { getEasterEgg } from "../api/EasterEggApi";
|
||||
import { AuthContextProps } from "./auth";
|
||||
import { EasterEgg } from "../types";
|
||||
|
||||
export const useEasterEgg = (auth?: AuthContextProps | null): [EasterEgg | undefined, boolean] => {
|
||||
const [result, setResult] = useState<EasterEgg | undefined>();
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
async function fetchEasterEgg() {
|
||||
if (auth?.login) {
|
||||
setLoading(true);
|
||||
const egg = await getEasterEgg();
|
||||
setResult(egg);
|
||||
setLoading(false);
|
||||
}
|
||||
}
|
||||
fetchEasterEgg();
|
||||
|
||||
}, [auth?.login]);
|
||||
|
||||
return [result, loading];
|
||||
}
|
||||
Reference in New Issue
Block a user