diff --git a/src/contexts/AuthContext.jsx b/src/contexts/AuthContext.jsx index d00f40e..5226dee 100644 --- a/src/contexts/AuthContext.jsx +++ b/src/contexts/AuthContext.jsx @@ -22,7 +22,7 @@ export const AuthProvider = ({ children }) => { _setUser(user); }; - // csrf token generation for guest methods + // Get a CSRF token for use in non-authenticated actions const csrfToken = async () => { await axios.get(`${import.meta.env.VITE_API_URL}/sanctum/csrf-cookie`); return true; diff --git a/src/layouts/ProtectedLayout.jsx b/src/layouts/ProtectedLayout.jsx index b42e0ec..76e31aa 100644 --- a/src/layouts/ProtectedLayout.jsx +++ b/src/layouts/ProtectedLayout.jsx @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import React, { useEffect, useState } from 'react'; import { Navigate, Outlet, NavLink } from 'react-router'; import axios from '../axios'; import { useAuth } from '../contexts/AuthContext'; @@ -6,10 +6,12 @@ import bannerDayLogo from '/banner-day.svg' export default function ProtectedLayout() { const { user, setUser } = useAuth(); + const [ serverVersion, setServerVersion ] = useState("unknown"); - // check if user is logged in or not from server useEffect(() => { (async () => { + + // Check the server to verify the user is logged in try { const response = await axios.get('/api/user'); if (response.status === 200) { @@ -21,14 +23,26 @@ export default function ProtectedLayout() { window.location.href = '/'; } } - })(); - }, []); - // if user is not logged in, redirect to login page + // Get the current app version of the server to display in footer + try { + const response = await axios.get('/api/server-version'); + if (response.status === 200) { + console.log("got server version", response.data); + setServerVersion(response.data.serverVersion) + } + } catch (error) { + console.log(error); + } + })(); + }, [setServerVersion]); + + // If the user isn't logged in, we'll redirect them to the login page if (!user) { return ; } + // logout user const handleLogout = async () => { try { @@ -43,56 +57,68 @@ export default function ProtectedLayout() { }; return ( <> - + +
+ +
+ + + ); } \ No newline at end of file