Add SEO metadata and fix mobile horizontal overflow.

Prevent homepage layout shift on small screens by constraining the hero aspect box and service/product carousels.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-09 17:44:15 +03:30
co-authored by Cursor
parent 701ec5851a
commit ccf8817b26
37 changed files with 692 additions and 134 deletions
@@ -1,10 +1,14 @@
import { Footer } from "@/components/Footer";
import { Header } from "@/components/Header";
import { PageHero, UpdatingNotice } from "@/components/PageShared";
import type { Metadata } from "next";
import { pageMetadata } from "@/lib/seo";
export const metadata = {
title: "تاسیسات ساختمانی | هواران",
};
export const metadata: Metadata = pageMetadata({
title: "تاسیسات ساختمانی",
description: "خدمات و تجهیزات تاسیسات ساختمانی رسام تجارت هواران",
path: "/solutions/building-installations",
});
export default function BuildingInstallationsPage() {
return (
@@ -3,11 +3,15 @@ import { Footer } from "@/components/Footer";
import { Header } from "@/components/Header";
import { PageHero } from "@/components/PageShared";
import { smokeBlocks, smokeIntro } from "@/data/smoke";
import type { Metadata } from "next";
import { pageMetadata } from "@/lib/seo";
export const metadata = {
title: "مدیریت دود ساختمان | هواران",
description: "سیستم های مدیریت دود ساختمان | رسام تجارت هواران",
};
export const metadata: Metadata = pageMetadata({
title: "مدیریت دود ساختمان",
description: "طراحی، تامین و اجرای سیستمهای مدیریت دود ساختمان",
path: "/solutions/building-smoke-management",
image: "/images/pages/smoke/hero.png",
});
export default function SmokeManagementPage() {
return (
+7 -3
View File
@@ -1,10 +1,14 @@
import { Footer } from "@/components/Footer";
import { Header } from "@/components/Header";
import { PageHero, UpdatingNotice } from "@/components/PageShared";
import type { Metadata } from "next";
import { pageMetadata } from "@/lib/seo";
export const metadata = {
title: "تهویه مطبوع | هواران",
};
export const metadata: Metadata = pageMetadata({
title: "تهویه مطبوع",
description: "سیستم‌های تهویه مطبوع برای فضاهای مسکونی، اداری و تجاری",
path: "/solutions/hvac",
});
export default function HvacSolutionPage() {
return (
+6 -3
View File
@@ -2,12 +2,15 @@ import { Footer } from "@/components/Footer";
import { Header } from "@/components/Header";
import { CatalogCard, PageHero } from "@/components/PageShared";
import { solutionsList } from "@/data/pages";
import type { Metadata } from "next";
import { pageMetadata } from "@/lib/seo";
export const metadata = {
title: "راهکارها | رسام تجارت هواران",
export const metadata: Metadata = pageMetadata({
title: "راهکارها",
description:
"راهکارهای مدیریت دود ساختمان، تهویه فضاهای مختلف، تهویه مطبوع، تونل و مترو و تاسیسات ساختمانی",
};
path: "/solutions",
});
export default function SolutionsPage() {
return (
@@ -3,11 +3,15 @@ import { Footer } from "@/components/Footer";
import { Header } from "@/components/Header";
import { PageHero } from "@/components/PageShared";
import { tunnelBlocks, tunnelIntro } from "@/data/tunnel";
import type { Metadata } from "next";
import { pageMetadata } from "@/lib/seo";
export const metadata = {
title: "تونل و مترو | هواران",
description: "راهکارهای تهویه تونل و مترو | رسام تجارت هواران",
};
export const metadata: Metadata = pageMetadata({
title: "تونل و مترو",
description: "راهکارهای تهویه تونل و مترو",
path: "/solutions/tunnels-and-subways",
image: "/images/pages/f300/axial-jet.png",
});
export default function TunnelsPage() {
return (
@@ -1,10 +1,14 @@
import { Footer } from "@/components/Footer";
import { Header } from "@/components/Header";
import { PageHero, UpdatingNotice } from "@/components/PageShared";
import type { Metadata } from "next";
import { pageMetadata } from "@/lib/seo";
export const metadata = {
title: "تهویه فضاهای مختلف | هواران",
};
export const metadata: Metadata = pageMetadata({
title: "تهویه فضاهای مختلف",
description: "راهکارهای تهویه برای فضاهای گوناگون ساختمانی و صنعتی",
path: "/solutions/ventilation-spaces",
});
export default function VentilationSpacesPage() {
return (