diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-10-26 21:12:30 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-10-26 21:12:30 -0700 |
| commit | 00ffea6a46890bdeac160f8a35b91a7d9298b721 (patch) | |
| tree | e3e16e6008624ef1cffb94e7f8b5a6a1fafb41ad /frontend/src | |
| parent | 016a4f266b3275ff2e66c7cf9fdf8da3d7a04c11 (diff) | |
create component for loading screen
Diffstat (limited to 'frontend/src')
| -rw-r--r-- | frontend/src/components/NavBar.tsx | 2 | ||||
| -rw-r--r-- | frontend/src/components/displays/LoadingDisplay.tsx | 17 | ||||
| -rw-r--r-- | frontend/src/pages/AllScores.tsx | 8 | ||||
| -rw-r--r-- | frontend/src/pages/Chart.tsx | 8 | ||||
| -rw-r--r-- | frontend/src/pages/Home.tsx | 8 | ||||
| -rw-r--r-- | frontend/src/pages/Import.tsx | 8 | ||||
| -rw-r--r-- | frontend/src/pages/Score.tsx | 8 |
7 files changed, 28 insertions, 31 deletions
diff --git a/frontend/src/components/NavBar.tsx b/frontend/src/components/NavBar.tsx index 045705c..296ac49 100644 --- a/frontend/src/components/NavBar.tsx +++ b/frontend/src/components/NavBar.tsx @@ -124,4 +124,4 @@ export const NavBar = ({ currentPage, user, handleLogout }: { </div> </nav> ); -};
\ No newline at end of file +}; diff --git a/frontend/src/components/displays/LoadingDisplay.tsx b/frontend/src/components/displays/LoadingDisplay.tsx new file mode 100644 index 0000000..ea6de54 --- /dev/null +++ b/frontend/src/components/displays/LoadingDisplay.tsx @@ -0,0 +1,17 @@ + +interface LoadingDisplayProps { + message?: string; +} + +const LoadingDisplay = ({ message }: LoadingDisplayProps) => { + return( + <div className="min-h-screen bg-slate-950 flex items-center justify-center"> + <div className="text-center"> + <div className="w-8 h-8 border-2 border-violet-500 border-t-transparent rounded-full animate-spin mx-auto mb-4"></div> + <p className="text-slate-300">{message || 'Loading...'}</p> + </div> + </div> + ) +} + +export default LoadingDisplay; diff --git a/frontend/src/pages/AllScores.tsx b/frontend/src/pages/AllScores.tsx index 1f7becf..c967ff0 100644 --- a/frontend/src/pages/AllScores.tsx +++ b/frontend/src/pages/AllScores.tsx @@ -1,4 +1,5 @@ import { useEffect, useState, useCallback } from "react"; +import LoadingDisplay from "../components/displays/LoadingDisplay"; import { useAuth } from "../contexts/AuthContext"; import { useNavigate } from "react-router"; import { NavBar } from "../components/NavBar"; @@ -190,12 +191,7 @@ const AllScores = () => { if (isLoading) { return ( - <div className="min-h-screen bg-linear-to-br from-slate-950 via-slate-900 to-slate-950 flex items-center justify-center"> - <div className="text-center"> - <div className="w-12 h-12 border-4 border-violet-500 border-t-transparent rounded-full animate-spin mx-auto mb-6"></div> - <p className="text-slate-300 text-lg">Loading games...</p> - </div> - </div> + <LoadingDisplay message="Loading Community Scores..." /> ); } diff --git a/frontend/src/pages/Chart.tsx b/frontend/src/pages/Chart.tsx index 346efd0..a84ae74 100644 --- a/frontend/src/pages/Chart.tsx +++ b/frontend/src/pages/Chart.tsx @@ -1,4 +1,5 @@ import { useEffect, useState, useCallback } from "react"; +import LoadingDisplay from "../components/displays/LoadingDisplay"; import { useAuth } from "../contexts/AuthContext"; import { useNavigate } from "react-router"; import { NavBar } from "../components/NavBar"; @@ -130,12 +131,7 @@ const Chart = () => { if (isLoading || loading) { return ( - <div className="min-h-screen bg-linear-to-br from-slate-950 via-slate-900 to-slate-950 flex items-center justify-center"> - <div className="text-center"> - <div className="w-12 h-12 border-4 border-violet-500 border-t-transparent rounded-full animate-spin mx-auto mb-6"></div> - <p className="text-slate-300 text-lg">Loading scores...</p> - </div> - </div> + <LoadingDisplay message="Loading Chart" /> ); } diff --git a/frontend/src/pages/Home.tsx b/frontend/src/pages/Home.tsx index ee31a3f..3fcb5cc 100644 --- a/frontend/src/pages/Home.tsx +++ b/frontend/src/pages/Home.tsx @@ -1,4 +1,5 @@ import { useNavigate } from "react-router"; +import LoadingDisplay from "../components/displays/LoadingDisplay"; import { NavBar } from "../components/NavBar"; import { useAuth } from "../contexts/AuthContext"; import type { SupportedGame } from "../types/game"; @@ -77,12 +78,7 @@ const Home = () => { if (isLoading || gamesLoading) { return ( - <div className="min-h-screen bg-slate-950 flex items-center justify-center"> - <div className="text-center"> - <div className="w-8 h-8 border-2 border-violet-500 border-t-transparent rounded-full animate-spin mx-auto mb-4"></div> - <p className="text-slate-300">Loading dashboard...</p> - </div> - </div> + <LoadingDisplay /> ); } diff --git a/frontend/src/pages/Import.tsx b/frontend/src/pages/Import.tsx index 2af4a0e..4061613 100644 --- a/frontend/src/pages/Import.tsx +++ b/frontend/src/pages/Import.tsx @@ -1,5 +1,6 @@ import { useState, useEffect, Suspense, lazy } from "react"; import { useNavigate } from "react-router"; +import LoadingDisplay from "../components/displays/LoadingDisplay"; import { useAuth } from "../contexts/AuthContext"; import SessionExpiredPopup from "../components/SessionExpiredPopup"; import type { SupportedGame } from "../types/game"; @@ -202,12 +203,7 @@ const Import = () => { if (isLoading) { return ( - <div className="min-h-screen bg-slate-950 flex items-center justify-center"> - <div className="text-center"> - <div className="w-8 h-8 border-2 border-violet-500 border-t-transparent rounded-full animate-spin mx-auto mb-4"></div> - <p className="text-slate-300">Loading import page...</p> - </div> - </div> + <LoadingDisplay message="Loading Import Page..." /> ); } diff --git a/frontend/src/pages/Score.tsx b/frontend/src/pages/Score.tsx index 4d358a0..e7140ab 100644 --- a/frontend/src/pages/Score.tsx +++ b/frontend/src/pages/Score.tsx @@ -1,4 +1,5 @@ import { useEffect, useState, useCallback } from "react"; +import LoadingDisplay from "../components/displays/LoadingDisplay"; import { useAuth } from "../contexts/AuthContext"; import { useNavigate } from "react-router"; import { NavBar } from "../components/NavBar"; @@ -163,12 +164,7 @@ const Score = () => { if (isLoading || loading) { return ( - <div className="min-h-screen bg-linear-to-br from-slate-950 via-slate-900 to-slate-950 flex items-center justify-center"> - <div className="text-center"> - <div className="w-12 h-12 border-4 border-violet-500 border-t-transparent rounded-full animate-spin mx-auto mb-6"></div> - <p className="text-slate-300 text-lg">Loading your scores...</p> - </div> - </div> + <LoadingDisplay message={"Loading Your Scores for " + formattedGameName}/> ); } |
