Files
dmenu-plus-front/src/app/[name]/(Main)/about/components/AboutSkeleton.tsx
T
2025-12-23 16:14:15 +03:30

134 lines
5.3 KiB
TypeScript

'use client';
import { Skeleton } from "@/components/ui/skeleton";
import TabContainer from "@/components/tab/TabContainer";
import { TabHeader } from "@/components/tab/TabHeader";
import { InfoCircle, Star1 } from 'iconsax-react';
const AboutSkeleton = () => {
const firstTabSkeleton = () => (
<section className='py-4'>
{/* اطلاعات رستوران */}
<section className="bg-container rounded-container shadow-container p-4">
<div className="flex justify-between items-center border-b-[1.5px] border-gray-200 pb-[25px]">
<div className="flex-1">
<Skeleton className="h-6 w-32 rounded-md mb-4" />
<Skeleton className="h-5 w-24 rounded-md mb-2" />
<Skeleton className="h-5 w-40 rounded-md" />
</div>
<Skeleton className="w-22 h-22 rounded-normal shrink-0" />
</div>
<div className="mt-[23px]">
<Skeleton className="h-5 w-28 rounded-md mb-3" />
<Skeleton className="h-4 w-full rounded-md mb-2" />
<Skeleton className="h-4 w-full rounded-md mb-2" />
<Skeleton className="h-4 w-3/4 rounded-md mb-[23px]" />
<div className='inline-flex gap-2 items-center'>
<Skeleton className="w-5 h-5 rounded-md" />
<Skeleton className="h-5 w-24 rounded-md" />
</div>
</div>
</section>
{/* ارتباط */}
<section className="bg-container rounded-container shadow-container pt-3 pb-3.5 px-[16px] mt-4 grid grid-cols-3 items-center">
<Skeleton className="h-5 w-16 rounded-md" />
<div className='col-span-1 text-center flex justify-center gap-4'>
{[...Array(3)].map((_, index) => (
<Skeleton key={index} className="w-10 h-10 rounded-normal" />
))}
</div>
</section>
{/* آدرس */}
<section className="bg-container rounded-container shadow-container px-4 pt-6 pb-6 mt-4">
<Skeleton className="h-5 w-12 rounded-md mb-[9px]" />
<Skeleton className="h-4 w-full rounded-md mb-2" />
<Skeleton className="h-4 w-3/4 rounded-md mb-[23px]" />
<div className='inline-flex gap-2 items-center'>
<Skeleton className="w-5 h-5 rounded-md" />
<Skeleton className="h-5 w-24 rounded-md" />
</div>
</section>
{/* ساعات کاری امروز */}
<section className="bg-container rounded-container shadow-container py-6 px-4 mt-4 flex justify-between items-center">
<div className="flex items-center gap-2">
<Skeleton className="w-4 h-4 rounded-full" />
<Skeleton className="h-5 w-8 rounded-md" />
<Skeleton className="w-1.5 h-1.5 rounded-full" />
<Skeleton className="h-5 w-32 rounded-md" />
</div>
<Skeleton className="w-4 h-4 rounded-md" />
</section>
{/* ساعات کاری هفته */}
{[...Array(3)].map((_, index) => (
<div
key={index}
className="bg-[#F6F6FA] dark:bg-border rounded-container leading-5 py-6 px-4 mt-4 flex justify-between items-center">
<Skeleton className="h-5 w-20 rounded-md" />
<Skeleton className="h-5 w-24 rounded-md" />
</div>
))}
</section>
);
const secondTabSkeleton = () => (
<section className='py-4'>
{/* امتیاز کاربران */}
<section className="bg-container rounded-container shadow-container p-4 py-6 grid grid-cols-2 items-center">
<Skeleton className="h-16 w-20 rounded-md mx-auto" />
<div className="flex flex-col w-fit items-end gap-1">
{[...Array(5)].map((_, index) => (
<Skeleton key={index} className="h-4 w-24 rounded-md" />
))}
</div>
</section>
{/* نظرات کاربران */}
<section className="bg-container rounded-container shadow-container pt-3 pb-3.5 px-[16px] mt-4">
<div className="flex justify-between items-center border-b-[1.5px] border-border pb-2">
<Skeleton className="h-5 w-24 rounded-md" />
<Skeleton className="h-8 w-28 rounded-xl" />
</div>
<div className="">
{[...Array(3)].map((_, index) => (
<div key={index} className="pt-8">
<div className="flex items-center gap-3 mb-3">
<Skeleton className="w-10 h-10 rounded-full" />
<div className="flex-1">
<Skeleton className="h-4 w-24 rounded-md mb-2" />
<Skeleton className="h-3 w-16 rounded-md" />
</div>
<Skeleton className="h-4 w-12 rounded-md" />
</div>
<Skeleton className="h-4 w-full rounded-md mb-2" />
<Skeleton className="h-4 w-3/4 rounded-md mb-4" />
<Skeleton className="h-3 w-20 rounded-md" />
</div>
))}
</div>
</section>
</section>
);
return (
<div className='pt-8 h-full overflow-y-auto noscrollbar'>
<TabContainer>
<TabHeader
viewRenderer={firstTabSkeleton()}
title='درباره ما' icon={<InfoCircle size={24} />}>
</TabHeader>
<TabHeader
viewRenderer={secondTabSkeleton()}
title='امتیازات و نظرات' icon={<Star1 size={24} />}>
</TabHeader>
</TabContainer>
</div>
);
};
export default AboutSkeleton;