From 727a603a960cebfc6d908ed15d8270268f04edc9 Mon Sep 17 00:00:00 2001 From: parsa aghaei Date: Tue, 24 Sep 2024 14:17:23 +0330 Subject: [PATCH] services optimized --- src/app/_components/services/page.tsx | 85 ++++++++++++--------------- 1 file changed, 36 insertions(+), 49 deletions(-) diff --git a/src/app/_components/services/page.tsx b/src/app/_components/services/page.tsx index 5af75a5..8f4a17c 100644 --- a/src/app/_components/services/page.tsx +++ b/src/app/_components/services/page.tsx @@ -5,7 +5,7 @@ import Skeleton from "react-loading-skeleton"; import "react-loading-skeleton/dist/skeleton.css"; type Service = { - id: number; // افزودن id برای شناسایی هر سرویس + id: number; title: string; description: string; imageSrc: string; @@ -21,7 +21,7 @@ export default function Services() { const fetchServices = async () => { try { const response = await fetch("/api/services", { - cache: "no-store", // غیرفعال کردن کش + cache: "no-store", }); if (!response.ok) { @@ -40,34 +40,35 @@ export default function Services() { fetchServices(); }, []); - if (loading) { - return ( -
-

Services

-

- Lorem ipsum dolor sit amet consectetur. Tristique amet sed massa nibh - lectus netus in. Aliquet donec morbi convallis pretium -

-
- {Array.from({ length: 4 }).map((_, index) => ( -
-
- -
- - -
- ))} -
+ // تابع برای رندر کردن کارت سرویس + const renderServiceCard = (service?: Service, index?: number) => ( +
+
+ {loading ? ( + + ) : ( + {service!.altText} + )}
- ); - } +

+ {loading ? ( + + ) : ( + service!.title + )} +

+

+ {loading ? ( + + ) : ( + service!.description + )} +

+
+ ); if (error) return

Error: {error}

; @@ -81,27 +82,13 @@ export default function Services() { Lorem ipsum dolor sit amet consectetur. Tristique amet sed massa nibh lectus netus in. Aliquet donec morbi convallis pretium

-
- {services.map((service) => ( -
-
- {service.altText} -
-

- {service.title} -

-

- {service.description} -

-
- ))} +
+ {loading + ? Array.from({ length: 4 }).map((_, index) => + renderServiceCard(undefined, index), + ) + : services.map((service) => renderServiceCard(service))}
); } -{ - /* */ -}