aboutsummaryrefslogtreecommitdiffstats
path: root/frontend/src
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-10-26 21:12:30 -0700
committerPinapelz <yukais@pinapelz.com>2025-10-26 21:12:30 -0700
commit00ffea6a46890bdeac160f8a35b91a7d9298b721 (patch)
treee3e16e6008624ef1cffb94e7f8b5a6a1fafb41ad /frontend/src
parent016a4f266b3275ff2e66c7cf9fdf8da3d7a04c11 (diff)
create component for loading screen
Diffstat (limited to 'frontend/src')
-rw-r--r--frontend/src/components/NavBar.tsx2
-rw-r--r--frontend/src/components/displays/LoadingDisplay.tsx17
-rw-r--r--frontend/src/pages/AllScores.tsx8
-rw-r--r--frontend/src/pages/Chart.tsx8
-rw-r--r--frontend/src/pages/Home.tsx8
-rw-r--r--frontend/src/pages/Import.tsx8
-rw-r--r--frontend/src/pages/Score.tsx8
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}/>
);
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage