first commit

This commit is contained in:
Samandar Turgunboyev
2025-12-15 18:41:13 +05:00
parent a5b46a9f26
commit 6bf86f39c6
109 changed files with 7007 additions and 295 deletions

View File

@@ -0,0 +1,66 @@
'use client';
import Banner from '@/assets/banner.webp';
import { AspectRatio } from '@/shared/ui/aspect-ratio';
import useCategoryActive from '@/widgets/navbar/lib/openCategory';
import Image from 'next/image';
import 'swiper/css';
import { Swiper, SwiperSlide } from 'swiper/react';
import { categoryList } from '../lib/data';
const Welcome = () => {
const { setActive, setOpenToolbar } = useCategoryActive();
return (
<div className="custom-container">
{/* Banner */}
<AspectRatio ratio={16 / 6} className="!p-0">
<div className="relative w-full h-full">
<Image
src={Banner || '/placeholder.svg'}
alt="Banner"
fill
className="rounded-2xl object-cover shadow-lg border border-slate-200"
priority
/>
</div>
</AspectRatio>
{/* Category Slider */}
<div className="mx-auto mt-5 max-lg:hidden">
<Swiper
spaceBetween={4}
slidesPerView={4}
breakpoints={{
320: { slidesPerView: 1 },
640: { slidesPerView: 2 },
1024: { slidesPerView: 4 },
}}
>
{categoryList.map((item, index) => (
<SwiperSlide key={index} className="py-3 px-1">
<div
className="flex gap-1 items-center justify-center bg-gray-100/60 p-3 rounded-lg shadow-sm cursor-pointer space-x-3"
onClick={() => {
setOpenToolbar(true);
setActive(item);
}}
>
<Image
src={item.image}
alt={item.name}
className="w-7 h-7 object-contain"
/>
<p className="text-sm font-bold truncate line-clamp-2 leading-tight text-slate-700">
{item.name}
</p>
</div>
</SwiperSlide>
))}
</Swiper>
</div>
</div>
);
};
export default Welcome;