Skip to content

Commit a445b1e

Browse files
authored
Feature/landing page setup (#153)
* feat: Enhance SignInPage with form validation and loading state - Implemented form validation using Zod and react-hook-form for email and password fields. - Added loading state to improve user experience during sign-in. - Integrated error handling for various sign-in scenarios, including unverified email and session management. - Updated LoginForm component to accept form props and handle submission logic. - Introduced Loading component for better visual feedback during loading states. - Refactored AuthLayout for improved layout and responsiveness. * feat: Revamp landing page structure and components - Removed the old Home component and replaced it with a new layout for the landing page. - Introduced a new LandingLayout component to encapsulate the Navbar and Footer. - Created multiple new pages for the landing section, including About, Contact, Disclaimer, Grants, Hackathons, Privacy, Projects, and Terms of Service. - Updated the Projects component to include pagination and improved project filtering based on user ownership and status. - Enhanced the ProjectCard component to conditionally display the ellipsis menu based on project ownership. - Added a Footer component for consistent navigation across the landing pages. * feat: Update CampaignTable and pagination handling across user pages - Modified CampaignTable component to accept `limit` and `showPagination` props for flexible display. - Adjusted CampaignTable instances in UserPage and CampaignsPage to utilize new props. - Refactored pagination logic in Projects component to streamline page navigation and improve user experience. - Enhanced Pagination component for better integration and usability across different contexts. * chore: Update Next.js version to 15.5.2 in package.json and package-lock.json - Upgraded Next.js from 15.4.4 to 15.5.2 for improved performance and features. - Updated related dependencies in package-lock.json to reflect the new version. * feat: Refactor Projects and RecentProjects components for improved data fetching and dependency management - Updated fetchProjects function in Projects component to include necessary dependencies for useCallback. - Enhanced RecentProjects component to properly utilize fetchProjects with updated dependency array. - Improved error handling and loading state management during project data fetching. * feat: Add GSAP animations and new waitlist page - Integrated GSAP for enhanced animations in the Navbar and new WaitlistPage component. - Added form validation using Zod and react-hook-form for the waitlist form. - Implemented character animations for the title and subtitle on the waitlist page. - Updated package.json and package-lock.json to include GSAP and @gsap/react dependencies. - Enhanced global styles with new CSS classes for animations and gradients.
1 parent 7d464ca commit a445b1e

29 files changed

Lines changed: 1578 additions & 419 deletions

File tree

app/(landing)/about/page.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
3+
const AboutPage = () => {
4+
return (
5+
<div className='text-white text-4xl font-bold text-center mt-10'>
6+
About Page
7+
</div>
8+
);
9+
};
10+
11+
export default AboutPage;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
3+
const CodeOfConductPage = () => {
4+
return (
5+
<div className='text-white text-4xl font-bold text-center mt-10'>
6+
Code of Conduct Page
7+
</div>
8+
);
9+
};
10+
11+
export default CodeOfConductPage;

app/(landing)/contact/page.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
3+
const ContactPage = () => {
4+
return (
5+
<div className='text-white text-4xl font-bold text-center mt-10'>
6+
Contact Page
7+
</div>
8+
);
9+
};
10+
11+
export default ContactPage;

app/(landing)/disclaimer/page.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
3+
const DisclaimerPage = () => {
4+
return (
5+
<div className='text-white text-4xl font-bold text-center mt-10'>
6+
Disclaimer Page
7+
</div>
8+
);
9+
};
10+
11+
export default DisclaimerPage;

app/(landing)/grants/page.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
3+
const GrantPage = () => {
4+
return (
5+
<div className='text-white text-4xl font-bold text-center mt-10'>
6+
Grant Page
7+
</div>
8+
);
9+
};
10+
11+
export default GrantPage;

app/(landing)/hackathons/page.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
3+
const HackathonPage = () => {
4+
return (
5+
<div className='text-white text-4xl font-bold text-center mt-10'>
6+
Hackathon Page
7+
</div>
8+
);
9+
};
10+
11+
export default HackathonPage;

app/(landing)/layout.tsx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { Metadata } from 'next';
2+
import { ReactNode } from 'react';
3+
import { Navbar } from '@/components/landing-page';
4+
5+
export const metadata: Metadata = {
6+
title: 'Boundless - Ideas Made Boundless',
7+
description:
8+
'Validate, fund, and grow your project with milestone-based support on Stellar.',
9+
openGraph: {
10+
title: 'Boundless - Ideas Made Boundless',
11+
description:
12+
'Validate, fund, and grow your project with milestone-based support on Stellar.',
13+
type: 'website',
14+
images: [
15+
{
16+
url: '/og-image-placeholder.png',
17+
width: 1200,
18+
height: 630,
19+
alt: 'Boundless',
20+
},
21+
],
22+
},
23+
twitter: {
24+
card: 'summary_large_image',
25+
title: 'Boundless - Ideas Made Boundless',
26+
description:
27+
'Validate, fund, and grow your project with milestone-based support on Stellar.',
28+
images: ['/og-image-placeholder.png'],
29+
},
30+
};
31+
32+
interface LandingLayoutProps {
33+
children: ReactNode;
34+
}
35+
36+
export default function LandingLayout({ children }: LandingLayoutProps) {
37+
return (
38+
<div className='min-h-screen flex flex-col bg-background pt-5 md:pt-11'>
39+
<Navbar />
40+
<main className='flex-1'>{children}</main>
41+
</div>
42+
);
43+
}

app/(landing)/page.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export default function LandingPage() {
2+
return (
3+
<div className='bg-background'>
4+
<h1 className='text-white text-4xl font-bold text-center mt-10'>
5+
Landing Page
6+
</h1>
7+
</div>
8+
);
9+
}

app/(landing)/privacy/page.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
3+
const PrivacyPage = () => {
4+
return (
5+
<div className='text-white text-4xl font-bold text-center mt-10'>
6+
Privacy Page
7+
</div>
8+
);
9+
};
10+
11+
export default PrivacyPage;

app/(landing)/projects/page.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react';
2+
3+
const ProjectsPage = () => {
4+
return (
5+
<div className='text-white text-4xl font-bold text-center mt-10'>
6+
Projects Page
7+
</div>
8+
);
9+
};
10+
11+
export default ProjectsPage;

0 commit comments

Comments
 (0)