diff --git a/frontend/src/components/shared/Loader.jsx b/frontend/src/components/shared/Loader.jsx deleted file mode 100644 index c6cb74e..0000000 --- a/frontend/src/components/shared/Loader.jsx +++ /dev/null @@ -1,24 +0,0 @@ -const Loader = () => { - return ( -
-
- {/* Brutalist pulsing square */} -
- {/* Secondary rotating square */} -
- {/* Loading text */} -

- Loading -

-
-
- ); -}; - -export default Loader; diff --git a/frontend/src/components/shared/ProtectedRoute.jsx b/frontend/src/components/shared/ProtectedRoute.jsx index 6db5626..6a542c0 100644 --- a/frontend/src/components/shared/ProtectedRoute.jsx +++ b/frontend/src/components/shared/ProtectedRoute.jsx @@ -1,6 +1,6 @@ import { Navigate } from "react-router-dom"; import { useAuth } from "../../context/AuthContext"; -import Loader from "./Loader"; +import Loader from "./loaders/LoaderSwitcher"; const ProtectedRoute = ({ children }) => { const { isAuthenticated, loading } = useAuth(); diff --git a/frontend/src/components/shared/PublicRoute.jsx b/frontend/src/components/shared/PublicRoute.jsx index d1e5884..1c590f8 100644 --- a/frontend/src/components/shared/PublicRoute.jsx +++ b/frontend/src/components/shared/PublicRoute.jsx @@ -1,6 +1,6 @@ import { Navigate } from "react-router-dom"; import { useAuth } from "../../context/AuthContext"; -import Loader from "./Loader"; +import Loader from "./loaders/LoaderSwitcher"; const PublicRoute = ({ children }) => { const { isAuthenticated, loading } = useAuth(); diff --git a/frontend/src/components/shared/loaders/LoaderAlt.jsx b/frontend/src/components/shared/loaders/LoaderAlt.jsx new file mode 100644 index 0000000..23f12ad --- /dev/null +++ b/frontend/src/components/shared/loaders/LoaderAlt.jsx @@ -0,0 +1,44 @@ +const Spinner = () => { + return ( +
+ Loading, please wait... +
+ {[...Array(4)].map((_, i) => ( +
+ ))} +
+ + +
+ ); +}; + +export default Spinner; \ No newline at end of file diff --git a/frontend/src/components/shared/loaders/LoaderPrimary.jsx b/frontend/src/components/shared/loaders/LoaderPrimary.jsx new file mode 100644 index 0000000..ddca9ed --- /dev/null +++ b/frontend/src/components/shared/loaders/LoaderPrimary.jsx @@ -0,0 +1,106 @@ +const Spinner = () => { + return ( +
+ Loading, please wait... +
+ {/* Outer Square */} +
+ + {/* Middle Square */} +
+ + {/* Inner Square */} +
+ + {/* Center Block */} +
+
+ + +
+ ); +}; + +export default Spinner; \ No newline at end of file diff --git a/frontend/src/components/shared/loaders/LoaderSwitcher.jsx b/frontend/src/components/shared/loaders/LoaderSwitcher.jsx new file mode 100644 index 0000000..f8452f8 --- /dev/null +++ b/frontend/src/components/shared/loaders/LoaderSwitcher.jsx @@ -0,0 +1,12 @@ +import LoaderPrimary from "./LoaderPrimary"; +import LoaderAlt from "./LoaderAlt"; + +// Centralized loader switching logic +// Change this boolean to switch loaders globally +const USE_ALT_LOADER = false; // Set to true to use the alternative loader + +const LoaderSwitcher = () => { + return USE_ALT_LOADER ? : ; +}; + +export default LoaderSwitcher; \ No newline at end of file diff --git a/frontend/src/pages/DashboardPage.jsx b/frontend/src/pages/DashboardPage.jsx index d04c569..330a771 100644 --- a/frontend/src/pages/DashboardPage.jsx +++ b/frontend/src/pages/DashboardPage.jsx @@ -1,11 +1,11 @@ import { useState } from "react"; import { useAuth } from "../context/AuthContext"; import { useNavigate, Link } from "react-router-dom"; -import Loader from "../components/shared/Loader"; import { useCodeforces } from "../hooks/useCodeforces"; import ConnectBanner from "../components/codeforces/ConnectBanner"; import VerifyModal from "../components/codeforces/VerifyModal"; import AIInsightPanel from "../components/ai/AIInsightPanel"; +import LoaderSwitcher from "../components/shared/loaders/LoaderSwitcher"; export default function DashboardPage() { const { user, loading, logout } = useAuth(); @@ -29,7 +29,7 @@ export default function DashboardPage() { }; if (loading) { - return ; + return ; } return (