sitemap added

This commit is contained in:
nabijonovdavronbek619@gmail.com
2026-01-09 18:28:22 +05:00
parent c2c39d44a0
commit cd50a10539
3 changed files with 199 additions and 176 deletions

View File

@@ -0,0 +1,38 @@
import { ContactForm } from "@/components/ContactForm";
import DetailInfo from "@/components/detailPage/detailInfo";
import { getAllProducts } from "@/lib/api";
import { Product } from "@/lib/products";
import { generateSlug } from "@/lib/slug";
import { notFound } from "next/navigation";
export async function generateStaticParams() {
const products = await getAllProducts();
return products.map((product) => ({
slug: generateSlug(product.name_uz),
}));
}
async function getProduct(slug: string): Promise<Product | undefined> {
const products = await getAllProducts();
console.log("slug: ", slug);
return products.find((product) => generateSlug(product.name_uz) === slug);
}
export default async function Page({ params }: { params: { slug: string } }) {
const product = await getProduct(params.slug);
if (!product) {
notFound();
}
return (
<div>
<DetailInfo product={product} />
<section id="contact">
<ContactForm />
</section>
</div>
);
}

43
app/sitemap.ts Normal file
View File

@@ -0,0 +1,43 @@
export const dynamic = "force-static";
import { MetadataRoute } from "next";
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = "https://promtechno.uz";
// Static pages
const staticPages = [
{
url: baseUrl,
lastModified: new Date(),
changeFrequency: "weekly" as const,
priority: 1,
},
];
// Product detail pages - based on actual product slugs from API
const productSlugs = [
"ppv-100-1-6-su-6-0-60-0-5foiz-mexanik-suyuqlik-hisoblagichi",
"ppo-40-0-6-su-suyuqlik-hisoblagichi",
"ppo-25-1-6-su-oval-tishli-suyuqlik-hisoblagichi",
"scl-20-24-nasosi",
"km-100-80-170e-elektro-nasosi",
"scn-75-70-nasosi",
"usn-150-04-pastdan-tushirish-quyi-oqizish-qurilmasi-ta-sir-zonasi-4-m",
"asn-80-02-yuqoridan-quyish-qurilmasi",
"usn-100-usn-76-neft-mahsulotlari-va-maxsus-suyuqliklarni-pastdan-oqizish-qurilmalari",
"mexanik-nafas-olish-klapani-kdm-100-150-200-250-ichki-yong-inga-qarshi-himoyali",
"fju-100-1-6-suyuqlik-filtri",
"yoqilg-i-quyish-moduli-mz-35",
"asvn-80-nasos-agregati",
];
const productPages = productSlugs.map((slug) => ({
url: `${baseUrl}/detail/${slug}`,
lastModified: new Date(),
changeFrequency: "monthly" as const,
priority: 0.8,
}));
return [...staticPages, ...productPages];
}