Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 1x 1x 1x 1x 521x 521x 521x 521x 98x 98x 93x 93x 94x 1x 1x 93x 93x 98x 5x 5x 5x 521x 521x 521x 521x 521x 521x 1x 201x 201x 201x 1x 1x 1x 201x 201x 201x 1x 479x 479x 479x 479x 479x 401x 479x 479x | import { useMutation, useQuery, useQueryClient } from "react-query"; import axios from "axios"; import { useNavigate } from "react-router-dom"; export function useCurrentUser() { let rolesList = ["ERROR_GETTING_ROLES"]; return useQuery( "/api/currentUser", async () => { try { const response = await axios.get("/api/currentUser"); try { rolesList = response.data.roles.map((r) => r.authority); } catch (e) { console.error("Error getting roles: ", e); } response.data = { ...response.data, rolesList: rolesList }; return { loggedIn: true, root: response.data }; } catch (e) { console.error("Error invoking axios.get: ", e); return { loggedIn: false, root: null }; } }, { initialData: { loggedIn: false, root: null, initialData: true }, }, ); } export function useLogout() { const queryClient = useQueryClient(); const navigate = useNavigate(); const mutation = useMutation(async () => { await axios.post("/logout"); await queryClient.resetQueries("/api/currentUser", { exact: true }); navigate("/"); }); return mutation; } export function hasRole(currentUser, role) { return ( currentUser && currentUser.loggedIn && currentUser.root && currentUser.root.rolesList && currentUser.root.rolesList.includes(role) ); } |