Skip to content

Commit eb5337d

Browse files
committed
feat: Enhance TestimonialsSection with responsive column layout and animations
- Updated TestimonialsSection to dynamically calculate the number of columns based on container width. - Improved scrolling animations using GSAP for a smoother user experience. - Added gradient images for visual enhancement and adjusted layout for better responsiveness. - Introduced a new fade.png asset for background effects.
1 parent fbebbc3 commit eb5337d

8 files changed

Lines changed: 191 additions & 103 deletions

File tree

app/api/waitlist/subscribe/route.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ export async function POST(request: NextRequest) {
3434

3535
const data = await response.json();
3636
return NextResponse.json(data, { status: 200 });
37-
} catch (error) {
38-
console.error('Waitlist subscription error:', error);
37+
} catch {
3938
return NextResponse.json(
4039
{
4140
message: 'Internal server error',

components/Projects.tsx

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,31 @@ import { useAuth } from '@/hooks/use-auth';
2323
import { useProjectSheetStore } from '@/lib/stores/project-sheet-store';
2424
import { ProjectsSkeleton } from './skeleton/ProjectsSkeleton';
2525

26+
// Strongly typed shape for the project objects returned by the API
27+
type ProjectApi = {
28+
_id: string;
29+
title: string;
30+
description: string;
31+
whitepaperUrl?: string;
32+
tags?: string[];
33+
category?: string;
34+
type?: string;
35+
status: string;
36+
createdAt: string;
37+
updatedAt: string;
38+
owner?: {
39+
type?: {
40+
_id?: string;
41+
profile?: {
42+
firstName?: string;
43+
lastName?: string;
44+
username?: string;
45+
avatar?: string;
46+
} | null;
47+
} | null;
48+
} | null;
49+
};
50+
2651
type StatusFilter =
2752
| 'all'
2853
| 'idea'
@@ -77,16 +102,18 @@ const Projects = () => {
77102

78103
const response = await getProjects(pageNum, ITEMS_PER_PAGE, filters);
79104

80-
const transformedProjects = (response.projects || []).map(
81-
(project: any) => ({
105+
const apiProjects = (response.projects ??
106+
[]) as unknown as ProjectApi[];
107+
const transformedProjects: RecentProjectsProps[] = apiProjects.map(
108+
project => ({
82109
id: project._id,
83110
name: project.title,
84111
description: project.description,
85112
image: project.whitepaperUrl || '/banner.png',
86113
link: `/projects/${project._id}`,
87114
tags: project.tags || [],
88-
category: project.category,
89-
type: project.type,
115+
category: project.category ?? 'unknown',
116+
type: project.type ?? 'unknown',
90117
amount: 0,
91118
status: project.status,
92119
createdAt: project.createdAt,

components/landing-page/navbar copy.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export function Navbar() {
9292
hoverTl: gsap.core.Timeline;
9393
enterHandler: () => void;
9494
leaveHandler: () => void;
95-
split: any;
95+
split: SplitText;
9696
}> = [];
9797

9898
menuItems?.forEach(item => {

components/landing-page/navbar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ export function Navbar() {
8181
hoverTl: gsap.core.Timeline;
8282
enterHandler: () => void;
8383
leaveHandler: () => void;
84-
split: any;
84+
split: SplitText;
8585
}> = [];
8686

8787
menuItems?.forEach(item => {

components/testimonials/TestimonialCard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const TestimonialCard: React.FC<TestimonialCardProps> = ({
2020
icon,
2121
}) => {
2222
return (
23-
<div className='bg-[#101010] rounded-[8px] shadow-xl p-6 flex flex-col gap-4 border border-[#A7F950]/20 hover:border-[#A7F950]/40 hover:shadow-[0_0_30px_rgba(167,249,80,0.3)] transition-all duration-500 hover:scale-105 transform mb-6'>
23+
<div className='bg-[#101010] rounded-[8px] shadow-xl p-6 flex flex-col gap-4 border border-[#A7F950]/20 hover:border-[#A7F950]/40 hover:shadow-[0_0_30px_rgba(167,249,80,0.3)] transition-all duration-500 hover:scale-105 transform mb-6 max-w-[300px] w-[300px]'>
2424
<div className='flex flex-row justify-between items-start'>
2525
<div className='flex items-center gap-3'>
2626
<div className='relative'>

0 commit comments

Comments
 (0)