seo uodate
This commit is contained in:
@@ -1,7 +1,88 @@
|
||||
// app/category/page.tsx
|
||||
import Category from '@/features/category/ui/Category';
|
||||
import { category_api } from '@/shared/config/api/category/api';
|
||||
import { Metadata } from 'next';
|
||||
import { Suspense } from 'react';
|
||||
|
||||
const page = () => {
|
||||
const fetchCategoryData = async () => {
|
||||
try {
|
||||
const res = await category_api.getCategory({ page: 1, page_size: 99 });
|
||||
return res.data.results;
|
||||
} catch {
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
interface PageProps {
|
||||
params: {
|
||||
locale: 'uz' | 'ru';
|
||||
};
|
||||
}
|
||||
|
||||
export async function generateMetadata({
|
||||
params,
|
||||
}: PageProps): Promise<Metadata> {
|
||||
const { locale } = await params;
|
||||
const categories = await fetchCategoryData();
|
||||
const categoryNames = categories.map((c) => c.name).join(', ');
|
||||
|
||||
if (locale === 'ru') {
|
||||
return {
|
||||
title: 'Категории | GASTRO',
|
||||
description: `Категории в нашем магазине: ${categoryNames}`,
|
||||
keywords: `категории, продукты, магазин, ${categoryNames}`,
|
||||
openGraph: {
|
||||
title: 'Категории | GASTRO',
|
||||
description: `Категории в нашем магазине: ${categoryNames}`,
|
||||
siteName: 'GASTRO',
|
||||
images: [
|
||||
{
|
||||
url: '/logos/logo.png',
|
||||
width: 1200,
|
||||
height: 1200,
|
||||
alt: 'Категории',
|
||||
},
|
||||
],
|
||||
type: 'website',
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: 'Категории | GASTRO',
|
||||
description: `Категории в нашем магазине: ${categoryNames}`,
|
||||
images: ['/logos/logo.png'],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
// default: Uzbek
|
||||
return {
|
||||
title: 'Kategoriyalar | GASTRO',
|
||||
description: `Bizning do‘konimizdagi kategoriyalar: ${categoryNames}`,
|
||||
keywords: `kategoriyalar, mahsulotlar, do‘kon, ${categoryNames}`,
|
||||
openGraph: {
|
||||
title: 'Kategoriyalar | GASTRO',
|
||||
description: `Bizning do‘konimizdagi kategoriyalar: ${categoryNames}`,
|
||||
siteName: 'GASTRO',
|
||||
images: [
|
||||
{
|
||||
url: '/logos/logo.png',
|
||||
width: 1200,
|
||||
height: 1200,
|
||||
alt: 'Kategoriyalar',
|
||||
},
|
||||
],
|
||||
type: 'website',
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: 'Kategoriyalar | GASTRO',
|
||||
description: `Bizning do‘konimizdagi kategoriyalar: ${categoryNames}`,
|
||||
images: ['/logos/logo.png'],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
const Page = () => {
|
||||
return (
|
||||
<Suspense>
|
||||
<Category />
|
||||
@@ -9,4 +90,4 @@ const page = () => {
|
||||
);
|
||||
};
|
||||
|
||||
export default page;
|
||||
export default Page;
|
||||
|
||||
Reference in New Issue
Block a user