Add new frontend - fix 3

This commit is contained in:
Urtzi Alfaro
2025-07-22 09:38:31 +02:00
parent d29a94e8ab
commit 6d5dea31ac
4 changed files with 6433 additions and 6 deletions

6426
frontend/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -14,6 +14,7 @@ interface AuthContextType {
refreshUser: () => Promise<void>;
}
// THIS LINE IS CRUCIAL AND MUST BE PRESENT AND UNCOMMENTED
const AuthContext = createContext<AuthContextType | null>(null);
export const useAuth = () => {
@@ -33,7 +34,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children
const initAuth = async () => {
try {
await tokenManager.initialize();
if (authService.isAuthenticated()) {
const profile = await authService.getCurrentUser();
setUser(profile);
@@ -66,7 +67,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children
const updateProfile = useCallback(async (updates: Partial<UserProfile>) => {
const updated = await authService.updateProfile(updates);
setUser(updated);
}, [updateProfile]);
}, []);
const refreshUser = useCallback(async () => {
if (authService.isAuthenticated()) {
@@ -79,10 +80,9 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children
useEffect(() => {
if (!user) return;
// Check token expiry every minute
const interval = setInterval(async () => {
try {
await tokenManager.getAccessToken(); // This will refresh if needed
await tokenManager.getAccessToken();
} catch (error) {
console.error('Token refresh failed:', error);
await logout();
@@ -93,7 +93,7 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children
}, [user, logout]);
return (
<AuthContext.Provider
<AuthContext.Provider // This is now defined!
value={{
user,
isAuthenticated: !!user,

View File

@@ -1,4 +1,4 @@
import { AuthProvider } from '../api';
import { AuthProvider } from '../contexts/AuthContext';
import '../styles/globals.css';
function App({ Component, pageProps }: any) {

View File

@@ -9,6 +9,7 @@ import {
CloudArrowUpIcon,
BuildingStorefrontIcon,
UserCircleIcon,
CpuChipIcon
} from '@heroicons/react/24/outline';
import { SalesUploader } from '../components/data/SalesUploader';
import { TrainingProgressCard } from '../components/training/TrainingProgressCard';