add maintenance page (#66)

This commit is contained in:
Hafid Nur
2025-11-27 23:46:52 +07:00
committed by GitHub
parent 35c9539c08
commit 70ee5300f7
2 changed files with 38 additions and 4 deletions
+17 -4
View File
@@ -1,4 +1,9 @@
import { Outlet, ScrollRestoration, useLocation, useNavigate } from 'react-router-dom';
import {
Outlet,
ScrollRestoration,
useLocation,
useNavigate,
} from 'react-router-dom';
import { useEffect, useState } from 'react';
import { supabase } from '@imphnen-frontend-service/service';
@@ -27,14 +32,21 @@ export default function RootLayout() {
}
// Check Supabase session
const { data: { session }, error } = await supabase.auth.getSession();
const {
data: { session },
error,
} = await supabase.auth.getSession();
if (error) {
console.error('[Layout] Session error:', error);
}
// Public auth pages (login, signup, forgot-password, reset-password) - allow unauthenticated access
const isPublicAuthPage = pathname === '/auth/login' || pathname === '/auth/signup' || pathname === '/auth/forgot-password' || pathname === '/auth/reset-password';
const isPublicAuthPage = pathname === '/maintenance';
// pathname === '/auth/login' ||
// pathname === '/auth/signup' ||
// pathname === '/auth/forgot-password' ||
// pathname === '/auth/reset-password';
if (isPublicAuthPage) {
// If already authenticated and not on password reset pages, redirect to dashboard
@@ -56,7 +68,8 @@ export default function RootLayout() {
// Require authentication for all other routes
if (!session) {
navigate('/auth/login', { replace: true });
navigate('/maintenance', { replace: true });
// navigate('/auth/login', { replace: true });
setIsChecking(false);
return;
}
@@ -0,0 +1,21 @@
export default function MaintenancePage() {
return (
<div className="flex justify-center items-center min-h-screen bg-gray-50 dark:bg-gray-950 px-4">
<div className="text-center">
<h1 className="text-6xl font-bold text-yellow-600 mb-4">🚧</h1>
<h2 className="text-3xl font-semibold mb-2">We'll be back soon!</h2>
<p className="text-gray-600">
Our site is currently undergoing scheduled maintenance.
<br />
Thank you for your patience.
</p>
<a
href="/"
className="mt-4 inline-block text-primary-600 hover:underline"
>
Back to Homepage
</a>
</div>
</div>
);
}