Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
452a42f
Enhance user profile management: update profile method to include ava…
darlenesantes Jul 28, 2025
1118580
fixed full 1v1 match flow with room creation, join logic, and start_g…
pavelnavarro Jul 28, 2025
bc3e780
removed mock data from gameroom and added problem display
pavelnavarro Jul 29, 2025
bdd97b8
Refactor authentication flow: update user setup handling and initiali…
darlenesantes Jul 29, 2025
0716266
Enhance Google OAuth login: include user name in authentication flow …
darlenesantes Jul 29, 2025
b40ed11
Add route to update user coins and rank based on game results
darlenesantes Jul 29, 2025
06efb3c
Added logic for webhosting URLs once produced, also fixed typo
WiIID315 Jul 29, 2025
675fc2b
Merge pull request #15 from darlenesantes/profile-fix
WiIID315 Jul 29, 2025
1e16e08
Merge pull request #16 from darlenesantes/webhost
WiIID315 Jul 29, 2025
ae6b200
added python support to gameroom
pavelnavarro Jul 29, 2025
4f14ae1
Merge branch 'main' of https://github.com/darlenesantes/Code-Clash in…
darlenesantes Jul 29, 2025
a78846b
fixed python wrapper
pavelnavarro Jul 29, 2025
ea22913
solved merge conflicts
pavelnavarro Jul 29, 2025
ceabbc2
Merge pull request #18 from darlenesantes/submit-button
darlenesantes Jul 29, 2025
a7b185b
Merge pull request #17 from darlenesantes/user-routes
darlenesantes Jul 29, 2025
c9fab0e
Updated CORS headers
WiIID315 Jul 29, 2025
a073a92
Merge pull request #19 from darlenesantes/webhost
WiIID315 Jul 29, 2025
d78e408
Added a slash oops
WiIID315 Jul 30, 2025
859d999
Merge pull request #20 from darlenesantes/webhost
WiIID315 Jul 30, 2025
c9a265d
Enhance GameRoom functionality to update user stats on game end
darlenesantes Jul 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 43 additions & 14 deletions client/src/app.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import authService from './services/api/authService'; // FIXED: Capital S
import './styles/global.css';
import GameRoom from './pages/GameRoom';
import MatchLobby from './pages/MatchLobby';
import TestRoomPage from "./pages/TestRoomPage";
import { AlignVerticalDistributeStartIcon } from 'lucide-react';

// Create context FIRST
export const AppContext = React.createContext();
Expand All @@ -16,6 +18,7 @@ const App = () => {
const [currentPage, setCurrentPage] = useState('landing');
const [user, setUser] = useState(null);
const [isLoading, setIsLoading] = useState(true);
const [roomData, setRoomData] = useState(null);

// Initialize app with proper auth service
useEffect(() => {
Expand All @@ -25,13 +28,15 @@ const App = () => {

// Use proper auth service
const authResult = await authService.initialize();

//console.log('authResult.user in App.jsx:', authResult.user);

if (authResult.authenticated) {
console.log('User is authenticated:', authResult.user);
setUser(authResult.user);

// Navigate to proper page based on setup status
if (!authResult.user.setupComplete) {
console.log('user setup status', authResult.user.setupComplete);
setCurrentPage('profile-setup');
} else {
setCurrentPage('dashboard');
Expand All @@ -54,23 +59,36 @@ const App = () => {
}, []);

// Navigation function
const navigate = (page) => {
console.log('Navigating to:', page);
const navigate = (page,payload) => {
console.log('Navigating to:', page, payload);
if (page === 'game-room') {
setRoomData(payload);
}
setCurrentPage(page);
};

// Enhanced login function
const handleLogin = (userData) => {
const handleLogin = async (userData) => {
console.log('Login successful in App.jsx:', userData);
setUser(userData);

// Navigate based on setup completion
if (!userData.setupComplete) {
console.log('User needs setup, navigating to profile-setup');
navigate('profile-setup');
setUser(userData); // temporary, need to get database user info

const result = await authService.getCurrentUserFromServer();
if (result.success) {
const dbUser = result.user;
console.log('Database user fetched:', dbUser);
setUser(dbUser);

// Navigate based on setup completion
if (!dbUser.setupComplete) {
console.log('User needs setup, navigating to profile-setup');
navigate('profile-setup');
} else {
console.log('user setup complete, navigating to dashboard');
navigate('dashboard');
}
} else {
console.log('User setup complete, navigating to dashboard');
navigate('dashboard');
console.error('Failed to fetch user from server:', result.error);
navigate('landing');
}
};

Expand Down Expand Up @@ -109,7 +127,9 @@ const App = () => {
navigate,
handleLogin,
handleLogout,
currentPage
currentPage,
roomData,
setRoomData
};

// Page routing
Expand Down Expand Up @@ -166,7 +186,8 @@ const App = () => {
<GameRoom
navigate={navigate}
user={user}
roomData={null}
setUser={setUser}
roomData={roomData}
/>
);

Expand All @@ -179,6 +200,14 @@ const App = () => {
/>
);

case 'test-room':
return (
<TestRoomPage
navigate={navigate}
user={user}
/>
);

default:
return (
<LandingPage
Expand Down
Loading