diff --git a/src/app/globals.css b/src/app/globals.css
index ddbe8cf..c35f930 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -158,7 +158,7 @@
.container {
width: 100%;
- padding-inline: 10rem;
+ padding-inline: 1rem;
@media (width >=40rem) {
max-width: 40rem;
@@ -167,7 +167,7 @@
@media (width >=48rem) {
max-width: 48rem;
- padding-inline: 1rem;
+ padding-inline: 2rem;
}
@media (width >=64rem) {
diff --git a/src/app/products/page.tsx b/src/app/products/page.tsx
new file mode 100644
index 0000000..0d48eba
--- /dev/null
+++ b/src/app/products/page.tsx
@@ -0,0 +1,55 @@
+import images from '@/assets/images/images';
+import InnerPageBanner from '@/components/layout/innerPages/banner';
+import ProductsCategoryCard from '@/components/pages/products/ProductCategoryCard';
+import type { IProductCategoryCardProps } from '@/components/pages/products/productCategoryCard.d';
+import { t } from '@/locales/translates';
+
+export default function ProductsPage() {
+ const productCategories = [
+ {
+ id: '1',
+ title: t('com_products_category_Ghazaghi_title') as string,
+ icon: 'categoryGhazaghi',
+ typesCount: 22,
+ priceTypeTitle: 'Economy',
+ bestForTitle: 'Best For Interior Part',
+ },
+ {
+ id: '2',
+ title: t('com_products_category_Ghermez_title') as string,
+ icon: 'categoryGhermez',
+ typesCount: 12,
+ priceTypeTitle: 'Luxury',
+ bestForTitle: 'Best For Exterior Part',
+ },
+ {
+ id: '3',
+ title: t('com_products_category_Zard_title') as string,
+ icon: 'categoryZard',
+ typesCount: 11,
+ priceTypeTitle: 'Economy',
+ bestForTitle: 'Best For Facing',
+ },
+ {
+ id: '40',
+ title: t('com_products_category_Semirom_title') as string,
+ icon: 'categorySemirom',
+ typesCount: 40,
+ priceTypeTitle: 'Economy',
+ bestForTitle: 'Best For Building',
+ },
+ ] as IProductCategoryCardProps[];
+ return (
+
+
+
+ {productCategories.map((category) => (
+
+ ))}
+
+
+ );
+}
diff --git a/src/assets/images/products_banner.png b/src/assets/images/products_banner.png
new file mode 100644
index 0000000..cd21368
Binary files /dev/null and b/src/assets/images/products_banner.png differ
diff --git a/src/components/pages/products/ProductCategoryCard.tsx b/src/components/pages/products/ProductCategoryCard.tsx
new file mode 100644
index 0000000..6b01d7e
--- /dev/null
+++ b/src/components/pages/products/ProductCategoryCard.tsx
@@ -0,0 +1,39 @@
+import { Icon } from '@/components/uikit/icons';
+import type { IProductCategoryCardProps } from './productCategoryCard.d';
+import AchievementTextBox from '@/components/layout/achievementTextBox';
+import { t } from '@/locales/translates';
+import Button from '@/components/uikit/button';
+import routeFactory from '@/assets/constants/routeFactory';
+
+export default function ProductsCategoryCard({
+ icon,
+ title,
+ typesCount,
+ priceTypeTitle,
+ bestForTitle,
+ id,
+}: IProductCategoryCardProps) {
+ return (
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/pages/products/productCategoryCard.d.ts b/src/components/pages/products/productCategoryCard.d.ts
new file mode 100644
index 0000000..aa684a6
--- /dev/null
+++ b/src/components/pages/products/productCategoryCard.d.ts
@@ -0,0 +1,10 @@
+import { IconName } from '@/components/uikit/icons';
+
+export interface IProductCategoryCardProps {
+ id: string;
+ title: string;
+ icon: IconName;
+ typesCount: number;
+ priceTypeTitle: string;
+ bestForTitle: string;
+}
diff --git a/src/components/uikit/button/button.d.ts b/src/components/uikit/button/button.d.ts
index 09efbf8..940c1d5 100644
--- a/src/components/uikit/button/button.d.ts
+++ b/src/components/uikit/button/button.d.ts
@@ -1,3 +1,4 @@
+import { URL } from 'url';
import { IconName } from '../icons';
export interface IBaseButtonProps
@@ -6,6 +7,7 @@ export interface IBaseButtonProps
loading?: boolean;
disabled?: boolean;
className?: string;
+ link?: URL | string;
}
export interface ITextButtonProps extends IBaseButtonProps {
diff --git a/src/components/uikit/button/index.tsx b/src/components/uikit/button/index.tsx
index edd943e..872ca2c 100644
--- a/src/components/uikit/button/index.tsx
+++ b/src/components/uikit/button/index.tsx
@@ -2,6 +2,7 @@
import React from 'react';
import { IIconButtonProps, ITextButtonProps } from './button';
import { Icon } from '../icons';
+import Link from 'next/link';
const Button: React.FC = ({
children,
@@ -9,52 +10,69 @@ const Button: React.FC = ({
disabled = false,
endIcon,
className,
+ link,
...props
}) => {
- return (
-