diff --git a/src/client/App.tsx b/src/client/App.tsx index b6ed1ed..7077ff5 100644 --- a/src/client/App.tsx +++ b/src/client/App.tsx @@ -1,4 +1,4 @@ -import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; +import { BrowserRouter as Router, Routes, Route, Navigate, useLocation } from 'react-router-dom'; import { AuthProvider } from './context/AuthContext'; import { useAuth } from './context/useAuth'; import { SystemSettingsProvider } from './context/SystemSettingsContext'; @@ -17,6 +17,7 @@ import { DeveloperDashboard } from './pages/DeveloperDashboard'; import { CalculatorDashboard } from './pages/CalculatorDashboard'; import { StockDashboard } from './pages/StockDashboard'; import { GuestDashboard } from './pages/GuestDashboard'; +import { Login } from './pages/Login'; import InstrumentList from './pages/InstrumentList'; const DeveloperRoute: React.FC<{ children: React.ReactNode }> = ({ children }) => { @@ -29,64 +30,80 @@ const DeveloperRoute: React.FC<{ children: React.ReactNode }> = ({ children }) = }; const AppContent: React.FC = () => { + const { isSignedIn, isLoading } = useAuth(); + const location = useLocation(); + + if (isLoading) { + return ( +
+
+
+ ); + } + + // If not signed in and not on the callback page, show login + if (!isSignedIn && location.pathname !== '/callback') { + return ; + } + return ( - - - - - - } /> - } /> - } /> - } /> - } /> - } /> - - + + + + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + + } /> + + + + } /> + + + + } /> + } /> + + - } /> - + - + - } /> - - - - } /> - } /> - - - - } - /> - - - - } - /> - - - - } - /> - - - - - + } + /> + + + + } + /> + } /> + + + + ); }; @@ -94,7 +111,9 @@ const AppContent: React.FC = () => { function App() { return ( - + + + ); } diff --git a/src/client/context/AuthContext.tsx b/src/client/context/AuthContext.tsx index e0097b0..2f878da 100644 --- a/src/client/context/AuthContext.tsx +++ b/src/client/context/AuthContext.tsx @@ -1,7 +1,6 @@ import React, { useState, useEffect, useCallback, useMemo } from 'react'; -import type { AppUser, UserRole } from '../types'; +import type { AppUser } from '../types'; import { AuthContext } from './AuthContextType'; -import { getUser } from '../main'; import { setApiOrganizationId } from '../services/api'; interface AuthProviderProps {