diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..0688442 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/brand/[id]/page.tsx b/src/app/brand/[id]/page.tsx index d467e53..ffe16d3 100644 --- a/src/app/brand/[id]/page.tsx +++ b/src/app/brand/[id]/page.tsx @@ -22,6 +22,7 @@ import { useInfiniteBrandProductsData } from '../hooks/useInfiniteBrandData' import { IProduct } from '@/types/landing.types' import { Product } from '../types/Types' import { useSearchParams, useParams } from 'next/navigation' +import { SHOP_CONFIG } from '@/config/const' const BrandPage: NextPage = () => { const [showMobileFilters, setShowMobileFilters] = useState(false) @@ -103,8 +104,16 @@ const BrandPage: NextPage = () => { market_status: defaultVariant?.market_status || 'active', price: price, stock: defaultVariant?.stock || 0, + postingTime: defaultVariant?.postingTime || 0, isFreeShip: defaultVariant?.isFreeShip || false, - isWholeSale: defaultVariant?.isWholeSale || false + isWholeSale: defaultVariant?.isWholeSale || false, + shop: defaultVariant?.shop || { _id: '', shopName: '', shopDescription: '', logo: '' }, + shipmentMethod: (defaultVariant?.shipmentMethod || []).map(method => ({ + ...method, + deliveryType: method.deliveryType as "Standard" | "SameDay" | "Express" + })), + warranty: defaultVariant?.warranty || { _id: 0, duration: '', logoUrl: '', name: '' }, + meterage: defaultVariant?.meterage ? [defaultVariant.meterage] : [] }, variants: (product.variants || []).map(variant => ({ ...variant, @@ -128,7 +137,7 @@ const BrandPage: NextPage = () => { - فروشگاه آناهیتا + {SHOP_CONFIG.fullName} {data?.pages?.[0]?.results.brand && ( <> diff --git a/src/app/brand/components/BrandProductsCarousel.tsx b/src/app/brand/components/BrandProductsCarousel.tsx index 81eb6c5..572d9ec 100644 --- a/src/app/brand/components/BrandProductsCarousel.tsx +++ b/src/app/brand/components/BrandProductsCarousel.tsx @@ -86,8 +86,16 @@ const BrandProductsCarousel: FC = ({ products, brandName }) => { market_status: defaultVariant?.market_status || 'active', price: price, stock: defaultVariant?.stock || 0, + postingTime: defaultVariant?.postingTime || 0, isFreeShip: defaultVariant?.isFreeShip || false, - isWholeSale: defaultVariant?.isWholeSale || false + isWholeSale: defaultVariant?.isWholeSale || false, + shop: defaultVariant?.shop || { _id: '', shopName: '', shopDescription: '', logo: '' }, + shipmentMethod: defaultVariant?.shipmentMethod?.map(method => ({ + ...method, + deliveryType: method.deliveryType as "Standard" | "SameDay" | "Express" + })) || [], + warranty: defaultVariant?.warranty || { _id: 0, duration: '', logoUrl: '', name: '' }, + meterage: defaultVariant?.meterage ? [defaultVariant.meterage] : [] }, variants: (product.variants || []).map(variant => ({ ...variant, diff --git a/src/app/brand/components/ProductGrid.tsx b/src/app/brand/components/ProductGrid.tsx index 79a2fc2..ca34cce 100644 --- a/src/app/brand/components/ProductGrid.tsx +++ b/src/app/brand/components/ProductGrid.tsx @@ -82,8 +82,16 @@ const ProductGrid: FC = ({ products, isLoading = false }) => { market_status: defaultVariant?.market_status || 'active', price: price, stock: defaultVariant?.stock || 0, + postingTime: defaultVariant?.postingTime || 0, isFreeShip: defaultVariant?.isFreeShip || false, - isWholeSale: defaultVariant?.isWholeSale || false + isWholeSale: defaultVariant?.isWholeSale || false, + shop: defaultVariant?.shop || { _id: '', shopName: '', shopDescription: '', logo: '' }, + shipmentMethod: defaultVariant?.shipmentMethod?.map(method => ({ + ...method, + deliveryType: method.deliveryType as "Standard" | "SameDay" | "Express" + })) || [], + warranty: defaultVariant?.warranty || { _id: 0, duration: '', logoUrl: '', name: '' }, + meterage: defaultVariant?.meterage ? [defaultVariant.meterage] : [] }, variants: (product.variants || []).map(variant => ({ ...variant, diff --git a/src/app/layout.tsx b/src/app/layout.tsx index f91834f..4801fa3 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -8,10 +8,14 @@ import ToastContainer from "@/components/Toast"; import MobileBottomMenu from "@/components/MobileBottomMenu"; import { ReactQueryDevtools } from '@tanstack/react-query-devtools' import { viewport } from './viewport' +import { SHOP_CONFIG } from "@/config/const"; export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: `${SHOP_CONFIG.fullName} | ${SHOP_CONFIG.englishName}`, + description: SHOP_CONFIG.description, + icons: { + icon: '/favicon.svg', + }, }; export { viewport }; @@ -22,7 +26,7 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - + {children} diff --git a/src/app/profile/favorite/page.tsx b/src/app/profile/favorite/page.tsx index 11bcfaf..0973147 100644 --- a/src/app/profile/favorite/page.tsx +++ b/src/app/profile/favorite/page.tsx @@ -39,8 +39,18 @@ const FavoritePage: NextPage = () => { market_status: item.variant.market_status, price: item.variant.price, stock: item.variant.stock, + postingTime: item.variant.postingTime, isFreeShip: item.variant.isFreeShip, isWholeSale: item.variant.isWholeSale, + shop: { + _id: item.variant.shop._id, + shopName: item.variant.shop.shopName, + shopDescription: item.variant.shop.shopDescription, + logo: item.variant.shop.logo, + }, + shipmentMethod: [], + warranty: item.variant.warranty, + meterage: item.variant.meterage ? [{ _id: 0, value: item.variant.meterage.toString() }] : [], }, variants: [{ _id: item.variant._id, diff --git a/src/config/const.ts b/src/config/const.ts index f9f4998..e5f82ca 100644 --- a/src/config/const.ts +++ b/src/config/const.ts @@ -9,4 +9,6 @@ export const PRIMARY_COLOR = "#DA2129"; export const SHOP_CONFIG = { name: "فجر مرکزی", // نام فروشگاه - می‌توان آن را تغییر داد fullName: "تابلو فجر مرکزی", // نام کامل فروشگاه + englishName: "Tablo Fajr Center", // نام کامل فروشگاه به زبان انگلیسی + description: "فروشگاه آنلاین تابلو فجر مرکزی", // توضیحات فروشگاه };