+
+ {category === 'phones' &&
Mobile phones
}
+ {category === 'tablets' &&
Tablets
}
+ {category === 'accessories' && (
+
Accessories
+ )}
+
{products.length} models
+
+ {!isLoading && !isError && products.length > 0 && (
+
+
+ {/*eslint-disable-next-line jsx-a11y/label-has-associated-control*/}
+
+
+
+
+
+ {/*eslint-disable-next-line jsx-a11y/label-has-associated-control*/}
+
+
+
+
+ )}
+
+ {isLoading &&
}
+
+ {!isLoading && !isError && (
+
+ {visibleProducts.map(product => (
+
+ ))}
+
+ )}
+
+ {!isLoading && !isError && perPage !== 'all' && totalPages > 1 && (
+
+
+
+ {pages.map(page => (
+
+ ))}
+
+
+
+ )}
+
+ {products.length === 0 && !isLoading && !isError && (
+
There are no {category} yet
+ )}
+
+ );
+};
diff --git a/src/modules/shared/components/ProductCard/ProductCard.module.scss b/src/modules/shared/components/ProductCard/ProductCard.module.scss
new file mode 100644
index 00000000000..36fdf32b3cc
--- /dev/null
+++ b/src/modules/shared/components/ProductCard/ProductCard.module.scss
@@ -0,0 +1,172 @@
+@use "sass:color";
+@import '../../../../styles/utils';
+
+.image {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+
+ transition: transform 0.3s ease-in-out;
+}
+
+.card {
+ width: 100%;
+ height: 506px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ border: 1px solid #E2E6E9;
+ border-radius: 8px;
+ background-color: $white;
+ padding: 32px 0;
+ transition: box-shadow 0.3s ease-in-out;
+
+ &:hover {
+ box-shadow: 0 2px 16px rgba(0, 0, 0, 0.1);
+
+ .image {
+ transform: scale(1.1);
+ }
+ }
+}
+
+.imageWrapper {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 208px;
+ height: 196px;
+ margin-bottom: 24px;
+
+ a {
+ display: flex;
+ width: 100%;
+ height: 100%;
+ justify-content: center;
+ align-items: center;
+ }
+}
+
+.info {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+}
+
+.title {
+ width: 208px;
+ height: 58px;
+ font-size: 14px;
+ color: $primary;
+}
+
+.priceContainer {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 108px;
+ height: 31px;
+ gap: 8px;
+}
+
+.price {
+ color: $primary;
+ font-size: 22px;
+ font-weight: 800;
+ line-height: 140%;
+ letter-spacing: 0%;
+}
+
+.fullPrice {
+ color: $secondary;
+ font-weight: 600;
+ font-size: 22px;
+ line-height: 100%;
+ letter-spacing: 0%;
+ text-decoration: line-through;
+}
+
+.divider {
+ width: 100%;
+ height: 1px;
+ background-color: #E2E6E9;
+ margin: 8px 0;
+}
+
+.specs {
+ width: 208px;
+ height: 77px;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ gap: 8px;
+}
+
+.spec {
+ align-items: center;
+ display: flex;
+ justify-content: space-between;
+ font-size: 12px;
+
+ span:first-child {
+ color: $secondary;
+ }
+
+ span:last-child {
+ color: #313237;
+ }
+}
+
+.actions {
+ width: 208px;
+ height: 40px;
+ display: flex;
+ justify-content: space-between;
+ margin-top: 16px;
+}
+
+.addToCart {
+ width: 160px;
+ height: 40px;
+ border-radius: 8px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: $orange;
+ color: $white;
+ border: none;
+ font-weight: 700;
+ cursor: pointer;
+ transition: backgroundcolor 0.3s;
+
+ &:hover {
+ background-color: color.adjust($orange, $lightness: 5%);
+ }
+
+
+}
+
+.added {
+ background-color: #8d3b01;
+
+ &:hover {
+ background-color: #8d3b01;
+ }
+ }
+
+.addToFavorite {
+ width: 40px;
+ height: 40px;
+ border: 1px solid #B4BDC3;
+ border-radius: 50%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background: transparent;
+ cursor: pointer;
+ transition: border-color 0.3s background-color 0.3s;
+
+ &:hover {
+ border-color: $primary;
+ }
+}
diff --git a/src/modules/shared/components/ProductCard/ProductCard.tsx b/src/modules/shared/components/ProductCard/ProductCard.tsx
new file mode 100644
index 00000000000..fec90473ea1
--- /dev/null
+++ b/src/modules/shared/components/ProductCard/ProductCard.tsx
@@ -0,0 +1,105 @@
+import React from 'react';
+import styles from './ProductCard.module.scss';
+import classname from 'classnames';
+import { Product } from '../../../../types/Product';
+import { Link } from 'react-router-dom';
+import { useFavorites } from '../../context/FavoritesContext';
+import { useCart } from '../../context/CartContext';
+
+type Props = {
+ product: Product;
+};
+
+export const ProductCard: React.FC