feat: Update login navigation and authentication flow

- Changed navigation from '/editor' to '/tests' after successful login.
- Introduced token state management in AuthContext for better handling of authentication.
- Updated login function to store JWT instead of Google token.
- Added error handling for login and test fetching processes.

style: Enhance UI with new footer and test list styles

- Added a footer component with copyright information.
- Created a new TestList component with improved styling and animations.
- Implemented responsive design for test cards and filter tabs.
- Added loading and error states for better user experience.

fix: Improve API interaction for test fetching and password verification

- Refactored API calls to use a centralized studentApi utility.
- Enhanced error handling for API responses, including unauthorized access.
- Implemented password verification for protected tests before starting them.
This commit is contained in:
2025-10-29 11:37:19 +05:30
parent 304761e258
commit 47f73681af
11 changed files with 1416 additions and 98 deletions

View File

@@ -2,8 +2,10 @@ import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-d
import { GoogleOAuthProvider } from '@react-oauth/google';
import { AuthProvider } from './contexts/AuthContext';
import Login from './components/Login';
import TestList from './components/TestList';
import CodeChallenge from "./components/CodeChallenge.jsx";
import Header from './components/Header';
import Footer from './components/Footer';
import ProtectedRoute from './components/ProtectedRoute';
import "./index.css";
@@ -19,23 +21,24 @@ function App() {
<Routes>
<Route path="/login" element={<Login />} />
<Route
path="/editor"
path="/tests"
element={
<ProtectedRoute>
{/* <Header /> */}
<CodeChallenge />
<footer className="footer-bar fixed bottom-0 left-0 right-0 border-t border-slate-200/40 dark:border-gray-800/20 bg-black">
<div className="flex items-center justify-center h-7">
<span className="text-xs text-slate-400 dark:text-gray-400 flex items-center">
Copyright © 2025. Made with
by Ishika and Arnab.
</span>
</div>
</footer>
<TestList />
<Footer />
</ProtectedRoute>
}
/>
<Route path="/" element={<Navigate to="/editor" replace />} />
<Route
path="/editor"
element={
<ProtectedRoute>
<CodeChallenge />
<Footer />
</ProtectedRoute>
}
/>
<Route path="/" element={<Navigate to="/tests" replace />} />
</Routes>
</div>
</Router>