From e357cf0ef2753c5d815d15a393075a4af896a1dd Mon Sep 17 00:00:00 2001 From: Miracle Nnaji Date: Sat, 28 Feb 2026 02:01:24 +0100 Subject: [PATCH 1/3] feat: implement Coming Soon page and consolidate placeholder routes - Create reusable ComingSoon component with roadmap feature listing - Add /coming-soon route (App Router) - Redirect defunct sidebar and landing routes to Coming Soon - Replace placeholder pages with centralized ComingSoon component - Ensure clean, typed, and accessible implementation --- app/(landing)/bounties/page.tsx | 3 +- app/(landing)/contact/page.tsx | 3 +- app/(landing)/grants/page.tsx | 3 +- .../organizations/[id]/grants/page.tsx | 2 + .../profile/[username]/projects/page.tsx | 5 +- app/coming-soon/page.tsx | 17 +++ app/me/analytics/page.tsx | 7 ++ app/me/hackathons/page.tsx | 7 ++ app/me/hackathons/submissions/page.tsx | 7 ++ app/me/notifications/page.tsx | 7 ++ app/me/profile/page.tsx | 7 ++ app/me/projects/create/page.tsx | 7 ++ components/ComingSoon.tsx | 107 ++++++++++++++++++ 13 files changed, 176 insertions(+), 6 deletions(-) create mode 100644 app/coming-soon/page.tsx create mode 100644 app/me/analytics/page.tsx create mode 100644 app/me/hackathons/page.tsx create mode 100644 app/me/hackathons/submissions/page.tsx create mode 100644 app/me/notifications/page.tsx create mode 100644 app/me/profile/page.tsx create mode 100644 app/me/projects/create/page.tsx create mode 100644 components/ComingSoon.tsx diff --git a/app/(landing)/bounties/page.tsx b/app/(landing)/bounties/page.tsx index c303997a7..7b2083349 100644 --- a/app/(landing)/bounties/page.tsx +++ b/app/(landing)/bounties/page.tsx @@ -1,10 +1,11 @@ -import React from 'react'; +import { redirect } from 'next/navigation'; import { Metadata } from 'next'; import { generatePageMetadata } from '@/lib/metadata'; export const metadata: Metadata = generatePageMetadata('grants'); const GrantPage = () => { + redirect('/coming-soon'); return (
Bounties Page diff --git a/app/(landing)/contact/page.tsx b/app/(landing)/contact/page.tsx index 0e253034a..d12c5373d 100644 --- a/app/(landing)/contact/page.tsx +++ b/app/(landing)/contact/page.tsx @@ -1,10 +1,11 @@ -import React from 'react'; +import { redirect } from 'next/navigation'; import { Metadata } from 'next'; import { generatePageMetadata } from '@/lib/metadata'; export const metadata: Metadata = generatePageMetadata('contact'); const ContactPage = () => { + redirect('/coming-soon'); return (
Contact Page diff --git a/app/(landing)/grants/page.tsx b/app/(landing)/grants/page.tsx index 08dfe9250..1c3258e95 100644 --- a/app/(landing)/grants/page.tsx +++ b/app/(landing)/grants/page.tsx @@ -1,10 +1,11 @@ -import React from 'react'; +import { redirect } from 'next/navigation'; import { Metadata } from 'next'; import { generatePageMetadata } from '@/lib/metadata'; export const metadata: Metadata = generatePageMetadata('grants'); const GrantPage = () => { + redirect('/coming-soon'); return (
Grant Page diff --git a/app/(landing)/organizations/[id]/grants/page.tsx b/app/(landing)/organizations/[id]/grants/page.tsx index a3484d8a2..d6b0ae948 100644 --- a/app/(landing)/organizations/[id]/grants/page.tsx +++ b/app/(landing)/organizations/[id]/grants/page.tsx @@ -1,7 +1,9 @@ +import { redirect } from 'next/navigation'; import { AuthGuard } from '@/components/auth'; import Loading from '@/components/Loading'; export default function GrantsPage() { + redirect('/coming-soon'); return ( }>
diff --git a/app/(landing)/profile/[username]/projects/page.tsx b/app/(landing)/profile/[username]/projects/page.tsx index 8d3a1d1d0..888ac850f 100644 --- a/app/(landing)/profile/[username]/projects/page.tsx +++ b/app/(landing)/profile/[username]/projects/page.tsx @@ -1,7 +1,6 @@ -import React from 'react'; - +import { redirect } from 'next/navigation'; const Page = () => { - return
Projects
; + redirect('/coming-soon'); }; export default Page; diff --git a/app/coming-soon/page.tsx b/app/coming-soon/page.tsx new file mode 100644 index 000000000..74bd811fe --- /dev/null +++ b/app/coming-soon/page.tsx @@ -0,0 +1,17 @@ +import ComingSoon from '@/components/ComingSoon'; +import { Footer, Navbar } from '@/components/landing-page'; +import React from 'react'; + +const page = () => { + return ( + <> + +
+ +
+