@@ -20,18 +19,9 @@ export default async function HomeEvents() {
}}
className="w-full"
>
-
- {news.map(announcement => (
-
-
-
- ))}
- {res.map(event => (
-
-
-
- ))}
-
+
}>
+
+
@@ -40,3 +30,23 @@ export default async function HomeEvents() {
);
}
+
+async function Events() {
+ const res = await getFeaturedEvents();
+ const news = await getFeaturedAnnouncements();
+
+ return (
+
+ {news.map(announcement => (
+
+
+
+ ))}
+ {res.map(event => (
+
+
+
+ ))}
+
+ );
+}
diff --git a/src/app/(pages)/home/_components/HomePageLoading.tsx b/src/app/(pages)/home/_components/HomePageLoading.tsx
new file mode 100644
index 00000000..841db2dc
--- /dev/null
+++ b/src/app/(pages)/home/_components/HomePageLoading.tsx
@@ -0,0 +1,36 @@
+import { CarouselContent, CarouselItem } from '@/components/ui/carousel';
+import { Skeleton } from '@/components/ui/skeleton';
+
+export function HomeProjectLoading() {
+ return (
+
+ {new Array(3).fill('').map(id => (
+
+
+
+
+
+ ))}
+
+ );
+}
+
+export function HomeProjectLoadingMobile() {
+ return new Array(3).fill('').map(id => (
+
+
+
+ ));
+}
+
+export function HomeEventLoading() {
+ return (
+
+ {new Array(3).fill('').map(id => (
+
+
+
+ ))}
+
+ );
+}
diff --git a/src/app/(pages)/home/_components/ProjectsBlock.tsx b/src/app/(pages)/home/_components/ProjectsBlock.tsx
index 89e66275..9dcd57f4 100644
--- a/src/app/(pages)/home/_components/ProjectsBlock.tsx
+++ b/src/app/(pages)/home/_components/ProjectsBlock.tsx
@@ -4,11 +4,12 @@ import Link from 'next/link';
import { MdDoubleArrow } from 'react-icons/md';
import { getFeaturedProjects } from '@/lib/notion/projects';
import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from '@/components/ui/carousel';
+import { Suspense } from 'react';
+import { HomeProjectLoading, HomeProjectLoadingMobile } from './HomePageLoading';
export const revalidate = Number(process.env.REVALIDATION_INTERVAL) || 3600;
export default async function ProjectsBlock() {
- const featuredProjects = await getFeaturedProjects();
return (
@@ -19,20 +20,16 @@ export default async function ProjectsBlock() {
}}
className="hidden md:block"
>
-
- {featuredProjects.map(project => (
-
-
-
- ))}
-
+
}>
+
+
- {featuredProjects.map(project => (
-
- ))}
+
}>
+
+
@@ -49,3 +46,22 @@ export default async function ProjectsBlock() {
);
}
+
+async function ProjectCards() {
+ const featuredProjects = await getFeaturedProjects();
+ return (
+
+ {featuredProjects.map(project => (
+
+
+
+ ))}
+
+ );
+}
+
+async function ProjectCardsMobile() {
+ const featuredProjects = await getFeaturedProjects();
+
+ return featuredProjects.map(project =>
);
+}
diff --git a/src/app/(pages)/projects/_components/PastProjectCard.tsx b/src/app/(pages)/projects/_components/PastProjectCard.tsx
index e68cbbae..9261b1dc 100644
--- a/src/app/(pages)/projects/_components/PastProjectCard.tsx
+++ b/src/app/(pages)/projects/_components/PastProjectCard.tsx
@@ -22,11 +22,13 @@ export default function PastProjectCard({ data }: { data: ProjectDataType }) {
/>
)}
-
-
{data.companyName}
-
- {data.description}
- {data.productName}
+
+
+
{data.companyName}
+
{data.productName}
+
+
+ {data.description}
diff --git a/src/app/(pages)/projects/_components/ProjectCardSkeletons.tsx b/src/app/(pages)/projects/_components/ProjectCardSkeletons.tsx
deleted file mode 100644
index 82cb6895..00000000
--- a/src/app/(pages)/projects/_components/ProjectCardSkeletons.tsx
+++ /dev/null
@@ -1,39 +0,0 @@
-import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from '@/components/ui/card';
-import { Skeleton } from '@/components/ui/skeleton';
-
-export default function ProjectCardSkeleton() {
- return [1, 2].map(() => (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
- ));
-}
-
-export function PastProjectCardSkeleton() {}
diff --git a/src/app/(pages)/projects/_components/ProjectCardsLoading.tsx b/src/app/(pages)/projects/_components/ProjectCardsLoading.tsx
new file mode 100644
index 00000000..2bde7692
--- /dev/null
+++ b/src/app/(pages)/projects/_components/ProjectCardsLoading.tsx
@@ -0,0 +1,59 @@
+import { Card, CardHeader, CardTitle, CardContent, CardFooter } from '@/components/ui/card';
+import { Skeleton } from '@/components/ui/skeleton';
+
+export default function ProjectCardSkeleton() {
+ return new Array(2).fill('').map(id => (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ ));
+}
+
+export function PastProjectCardSkeleton() {
+ return new Array(3).fill('').map(id => (
+
+ ));
+}
diff --git a/src/app/(pages)/projects/page.tsx b/src/app/(pages)/projects/page.tsx
index c6d94864..64fdd118 100644
--- a/src/app/(pages)/projects/page.tsx
+++ b/src/app/(pages)/projects/page.tsx
@@ -3,7 +3,7 @@ import CurrentProjects from './_components/CurrentProjects';
import PastProjects from './_components/PastProjects';
// import { getProjects, isCurrentProject } from '@/lib/notion/projects';
import BlockContainer from '@/components/BlockContainer';
-import ProjectCardSkeleton from './_components/ProjectCardSkeletons';
+import ProjectCardSkeleton, { PastProjectCardSkeleton } from './_components/ProjectCardsLoading';
export const revalidate = Number(process.env.REVALIDATION_INTERVAL) || 3600;
@@ -19,7 +19,7 @@ export default async function Projects() {
- Loading...
}>
+ }>
diff --git a/src/app/(pages)/students/_components/student.tsx b/src/app/(pages)/students/_components/Students.tsx
similarity index 100%
rename from src/app/(pages)/students/_components/student.tsx
rename to src/app/(pages)/students/_components/Students.tsx
diff --git a/src/app/(pages)/students/_components/loading.tsx b/src/app/(pages)/students/_components/StudentsLoading.tsx
similarity index 88%
rename from src/app/(pages)/students/_components/loading.tsx
rename to src/app/(pages)/students/_components/StudentsLoading.tsx
index 4ebf8a4a..f1af3e3c 100644
--- a/src/app/(pages)/students/_components/loading.tsx
+++ b/src/app/(pages)/students/_components/StudentsLoading.tsx
@@ -3,9 +3,9 @@ import { Skeleton } from '@/components/ui/skeleton';
export default function Loading() {
return (
- <>
+