From 16b6786165d5532761a6b1cea0a74a3622106cb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?= Date: Mon, 17 Feb 2025 06:02:15 +0100 Subject: [PATCH] fix(dashboard): add maintenance in middleware --- apps/dashboard/src/app/maintenance/page.tsx | 8 ++++---- apps/dashboard/src/middleware.ts | 9 +++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/apps/dashboard/src/app/maintenance/page.tsx b/apps/dashboard/src/app/maintenance/page.tsx index 4532112d..a0529fad 100644 --- a/apps/dashboard/src/app/maintenance/page.tsx +++ b/apps/dashboard/src/app/maintenance/page.tsx @@ -3,13 +3,13 @@ import { CalendarCogIcon } from 'lucide-react'; export default function Maintenance() { return (
-
+
-
+
Oh no!
-

Maintenance

-

+

Maintenance

+

We're doing a planned maintenance. Please check back later.

diff --git a/apps/dashboard/src/middleware.ts b/apps/dashboard/src/middleware.ts index 29e28922..df684b00 100644 --- a/apps/dashboard/src/middleware.ts +++ b/apps/dashboard/src/middleware.ts @@ -28,9 +28,18 @@ const isPublicRoute = createRouteMatcher([ '/reset-password(.*)?', '/sso-callback(.*)?', '/onboarding', + '/maintenance', ]); export default (request: NextRequest) => { + // Check for maintenance mode + if ( + process.env.MAINTENANCE === 'true' && + !request.nextUrl.pathname.startsWith('/maintenance') + ) { + return NextResponse.redirect(new URL('/maintenance', request.url)); + } + if (request.method === 'GET') { const response = NextResponse.next(); const token = request.cookies.get('session')?.value ?? null;