diff --git a/public/7up-bottle.png b/public/7up-bottle.png new file mode 100644 index 0000000..d7e29d1 Binary files /dev/null and b/public/7up-bottle.png differ diff --git a/public/logos/logo-white.png b/public/logos/logo-white.png new file mode 100644 index 0000000..16b8657 Binary files /dev/null and b/public/logos/logo-white.png differ diff --git a/public/mirinda-orange.png b/public/mirinda-orange.png new file mode 100644 index 0000000..bd3bd00 Binary files /dev/null and b/public/mirinda-orange.png differ diff --git a/public/mountain-dew.png b/public/mountain-dew.png new file mode 100644 index 0000000..e530fca Binary files /dev/null and b/public/mountain-dew.png differ diff --git a/public/red-bull-cola.png b/public/red-bull-cola.png new file mode 100644 index 0000000..87fbc7d Binary files /dev/null and b/public/red-bull-cola.png differ diff --git a/public/schweppes-tonic.png b/public/schweppes-tonic.png new file mode 100644 index 0000000..d34eee2 Binary files /dev/null and b/public/schweppes-tonic.png differ diff --git a/src/features/auth/ui/Login.tsx b/src/features/auth/ui/Login.tsx index d01c82a..dd758d5 100644 --- a/src/features/auth/ui/Login.tsx +++ b/src/features/auth/ui/Login.tsx @@ -155,7 +155,7 @@ const Login = () => { {step === 'phone' ? ( ) : ( - + )}

diff --git a/src/features/category/lib/data.ts b/src/features/category/lib/data.ts index 592ba02..d543b03 100644 --- a/src/features/category/lib/data.ts +++ b/src/features/category/lib/data.ts @@ -116,6 +116,66 @@ export const subCategoriesData: SubCategory[] = [ inStock: true, liked: false, }, + { + id: 9, + name: '7UP 1.5L', + price: 9800, + oldPrice: 11500, + image: '/7up-bottle.png', + rating: 4.3, + reviews: 124, + discount: 15, + inStock: true, + liked: false, + }, + { + id: 10, + name: 'Mirinda Orange 1.5L', + price: 9500, + oldPrice: 11000, + image: '/mirinda-orange.png', + rating: 4.4, + reviews: 139, + discount: 14, + inStock: true, + liked: false, + }, + { + id: 11, + name: 'Schweppes Tonic 1L', + price: 13500, + oldPrice: 15500, + image: '/schweppes-tonic.png', + rating: 4.6, + reviews: 98, + discount: 13, + inStock: true, + liked: true, + }, + { + id: 12, + name: 'Mountain Dew 1.5L', + price: 12500, + oldPrice: 14500, + image: '/mountain-dew.png', + rating: 4.5, + reviews: 187, + discount: 14, + inStock: true, + liked: false, + }, + { + id: 13, + name: 'Red Bull Cola 0.33L', + price: 16000, + oldPrice: 18000, + image: '/red-bull-cola.png', + rating: 4.2, + reviews: 76, + discount: 11, + inStock: false, + liked: false, + }, ], }, { diff --git a/src/features/category/ui/Product.tsx b/src/features/category/ui/Product.tsx index f8ed914..1510ad4 100644 --- a/src/features/category/ui/Product.tsx +++ b/src/features/category/ui/Product.tsx @@ -58,7 +58,7 @@ const Product = () => {

-
+
{products.map((product) => ( -
-
+
+ <> +

Sevimli mahsulotlar @@ -130,7 +130,7 @@ export default function Favourite() {

-
+
{likedProducts.map((product) => ( ))}
-
+
); } diff --git a/src/features/product/ui/Product.tsx b/src/features/product/ui/Product.tsx index cb20989..4c2347a 100644 --- a/src/features/product/ui/Product.tsx +++ b/src/features/product/ui/Product.tsx @@ -1,6 +1,12 @@ 'use client'; -import { Carousel, CarouselContent, CarouselItem } from '@/shared/ui/carousel'; +import { + Carousel, + CarouselContent, + CarouselItem, + CarouselNext, + CarouselPrevious, +} from '@/shared/ui/carousel'; import { ProductCard } from '@/widgets/categories/ui/product-card'; import { Heart, @@ -166,7 +172,7 @@ const ProductDetail = () => { }} className="w-full" > - + {product.images.map((img, index) => ( { {/* Price */}
-
+
{product.price.toLocaleString()} {"so'm"} @@ -235,7 +241,7 @@ const ProductDetail = () => {

{product.description}

{/* Brand and Category */} -
+
Brand:

{product.brand}

@@ -259,7 +265,7 @@ const ProductDetail = () => { />
-

+

{product.supplier.name}

@@ -271,7 +277,7 @@ const ProductDetail = () => { -
+
diff --git a/src/features/profile/ui/Profile.tsx b/src/features/profile/ui/Profile.tsx index 7a3d14c..15999b3 100644 --- a/src/features/profile/ui/Profile.tsx +++ b/src/features/profile/ui/Profile.tsx @@ -9,7 +9,6 @@ import { Badge } from '@/shared/ui/badge'; import { Button } from '@/shared/ui/button'; import { Card, CardContent } from '@/shared/ui/card'; import { - Bell, CheckCircle, ChevronRight, Handshake, @@ -22,7 +21,6 @@ import { Package, RefreshCw, ShoppingBag, - Star, TrendingUp, Truck, Wallet, @@ -335,14 +333,6 @@ const Profile = () => { Qayta -
@@ -451,9 +441,13 @@ const Profile = () => {
diff --git a/src/features/profile/ui/Support.tsx b/src/features/profile/ui/Support.tsx index 7dacbcf..6ca0a47 100644 --- a/src/features/profile/ui/Support.tsx +++ b/src/features/profile/ui/Support.tsx @@ -65,13 +65,13 @@ export default function CustomerSupport() { }; return ( -
+
<> {/* Header */}
-

+

{"Qo'llab-quvvatlash"}

diff --git a/src/features/search/ui/Search.tsx b/src/features/search/ui/Search.tsx index f503f00..b01a8df 100644 --- a/src/features/search/ui/Search.tsx +++ b/src/features/search/ui/Search.tsx @@ -117,7 +117,7 @@ const SearchResult: React.FC = () => {
Yuklanmoqda...
) : query ? ( results.length ? ( -
+
{results.map((product) => ( - + {products.slice(0, 12).map((product) => ( ))} - - + + + ); diff --git a/src/widgets/categories/ui/product-card.tsx b/src/widgets/categories/ui/product-card.tsx index 78f1b15..03901ba 100644 --- a/src/widgets/categories/ui/product-card.tsx +++ b/src/widgets/categories/ui/product-card.tsx @@ -46,12 +46,12 @@ export function ProductCard({ return ( router.push(`/product/${product.id}`)} - className="group relative p-0 overflow-hidden border border-slate-200 bg-white shadow-sm hover:shadow-xl transition-all duration-300 rounded-2xl hover:border-blue-400" + className="group relative p-0 overflow-hidden border border-slate-200 bg-white shadow-sm hover:shadow-lg transition-all rounded-xl sm:rounded-2xl hover:border-blue-400" >
{product.discount > 0 && ( -
+
-{product.discount}%
)} @@ -59,61 +59,54 @@ export function ProductCard({ -
+
{product.name}
-
+
-
- - - {product.rating} - -
- - ({product.reviews} ta sharh) + + + {product.rating}
-

+

{product.name}

-
-
- - {formatPrice(product.price)} - -
+
+ + {formatPrice(product.price)} + + {product.oldPrice && ( -
- - {formatPrice(product.oldPrice)} - - - Tejang! - +
+ {formatPrice(product.oldPrice)}
)}
@@ -122,40 +115,34 @@ export function ProductCard({ ) : ( -
+
e.stopPropagation()} + className="flex items-center justify-between border border-blue-500 rounded-lg h-9 sm:h-11" + > { - const value = e.target.value; - - if (/^\d*$/.test(value)) { - setQuantity(value === '' ? '' : Number(value)); - } + const v = e.target.value; + if (/^\d*$/.test(v)) setQuantity(v === '' ? '' : +v); }} - onBlur={() => { - if (quantity === '' || quantity < 1) { - setQuantity(1); - } - }} - className="w-full text-center outline-none ring-0 focus-visible:ring-0 border-none font-semibold" + className="w-full border-none text-sm !p-0 focus-visible:ring-0" />
)} diff --git a/src/widgets/footer/ui/index.tsx b/src/widgets/footer/ui/index.tsx index e789cf3..0ac3c24 100644 --- a/src/widgets/footer/ui/index.tsx +++ b/src/widgets/footer/ui/index.tsx @@ -8,7 +8,7 @@ import { Fragment } from 'react'; const Footer = () => { return ( -
+
@@ -17,24 +17,24 @@ const Footer = () => { {PRODUCT_INFO.name}
-

+

{PRODUCT_INFO.name}

-

+

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Est, totam?

-

+

Kategoriyalar

    @@ -43,7 +43,7 @@ const Footer = () => { {link.subCategories.slice(0, 2).map((e, linkIdx) => (
  • {e.name} @@ -55,53 +55,53 @@ const Footer = () => {
-

Sahifalar

+

Sahifalar

    -
  • +
  • Biz haqimizda
  • -
  • +
  • Maxfiylik siyosati
  • -
  • +
  • Savol va javoblar
-

Aloqa

+

Aloqa