diff --git a/public/fonts/iran-yekan-bold.ttf b/public/fonts/iran-yekan-bold.ttf new file mode 100644 index 0000000..6d98764 Binary files /dev/null and b/public/fonts/iran-yekan-bold.ttf differ diff --git a/public/fonts/iran-yekan-extrabold.ttf b/public/fonts/iran-yekan-extrabold.ttf new file mode 100644 index 0000000..a2810c5 Binary files /dev/null and b/public/fonts/iran-yekan-extrabold.ttf differ diff --git a/public/fonts/iran-yekan-medium.ttf b/public/fonts/iran-yekan-medium.ttf new file mode 100644 index 0000000..cc9d9b4 Binary files /dev/null and b/public/fonts/iran-yekan-medium.ttf differ diff --git a/public/fonts/iran-yekan-regular.ttf b/public/fonts/iran-yekan-regular.ttf new file mode 100644 index 0000000..c662408 Binary files /dev/null and b/public/fonts/iran-yekan-regular.ttf differ diff --git a/public/fonts/oswald-400.ttf b/public/fonts/oswald-400.ttf new file mode 100644 index 0000000..1b5cb18 Binary files /dev/null and b/public/fonts/oswald-400.ttf differ diff --git a/public/fonts/oswald-500.ttf b/public/fonts/oswald-500.ttf new file mode 100644 index 0000000..73d8ee0 Binary files /dev/null and b/public/fonts/oswald-500.ttf differ diff --git a/public/fonts/oswald-600.ttf b/public/fonts/oswald-600.ttf new file mode 100644 index 0000000..314768a Binary files /dev/null and b/public/fonts/oswald-600.ttf differ diff --git a/public/fonts/oswald-700.ttf b/public/fonts/oswald-700.ttf new file mode 100644 index 0000000..86812a0 Binary files /dev/null and b/public/fonts/oswald-700.ttf differ diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx index f14869b..f855538 100644 --- a/src/app/contact/page.tsx +++ b/src/app/contact/page.tsx @@ -1,7 +1,7 @@ import type { Metadata } from "next"; import { SiteShell } from "@/components/SiteShell"; import { ContactForm } from "@/components/ContactForm"; -import { getBusinessInfo } from "@/lib/api/business"; +import { getBusinessInfo, getPrimaryPhone, toPhoneText } from "@/lib/api/business"; import { site } from "@/data/home"; export const metadata: Metadata = { @@ -11,10 +11,11 @@ export const metadata: Metadata = { export default async function ContactPage() { const info = await getBusinessInfo(); - const phones = - info?.phoneNumbers?.filter(Boolean).length - ? info.phoneNumbers - : [site.phoneDisplay]; + const phones = (info?.phoneNumbers ?? []) + .map(toPhoneText) + .filter(Boolean); + const displayPhones = + phones.length > 0 ? phones : [getPrimaryPhone(info)]; const emails = info?.emails?.filter(Boolean) ?? []; const addresses = info?.addresses?.length @@ -56,19 +57,16 @@ export default async function ContactPage() {

تلفن

- {phones.map((phone) => { - const phoneText = String(phone ?? "") - return ( + {displayPhones.map((phone) => ( - {phoneText} + {phone} - ) - })} + ))}
diff --git a/src/app/globals.css b/src/app/globals.css index 096f5e2..8807a59 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -2,7 +2,7 @@ @font-face { font-family: "iran-yekan"; - src: url("https://cdn.meshkee.com/web-builder/fonts/iran-yekan/iran-yekan-regular.ttf"); + src: url("/fonts/iran-yekan-regular.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap; @@ -10,7 +10,7 @@ @font-face { font-family: "iran-yekan"; - src: url("https://cdn.meshkee.com/web-builder/fonts/iran-yekan/iran-yekan-medium.ttf"); + src: url("/fonts/iran-yekan-medium.ttf") format("truetype"); font-weight: 500; font-style: normal; font-display: swap; @@ -18,7 +18,7 @@ @font-face { font-family: "iran-yekan"; - src: url("https://cdn.meshkee.com/web-builder/fonts/iran-yekan/iran-yekan-bold.ttf"); + src: url("/fonts/iran-yekan-bold.ttf") format("truetype"); font-weight: 700; font-style: normal; font-display: swap; @@ -26,12 +26,44 @@ @font-face { font-family: "iran-yekan"; - src: url("https://cdn.meshkee.com/web-builder/fonts/iran-yekan/iran-yekan-extrabold.ttf"); + src: url("/fonts/iran-yekan-extrabold.ttf") format("truetype"); font-weight: 800; font-style: normal; font-display: swap; } +@font-face { + font-family: "Oswald"; + src: url("/fonts/oswald-400.ttf") format("truetype"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Oswald"; + src: url("/fonts/oswald-500.ttf") format("truetype"); + font-weight: 500; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Oswald"; + src: url("/fonts/oswald-600.ttf") format("truetype"); + font-weight: 600; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Oswald"; + src: url("/fonts/oswald-700.ttf") format("truetype"); + font-weight: 700; + font-style: normal; + font-display: swap; +} + :root { --background: #f2f5f8; --foreground: #0f1720; @@ -43,6 +75,7 @@ --brand-ink: #06233f; --steel: #8fa3b8; --container: 1180px; + --font-industrial: "Oswald", Impact, sans-serif; } @theme inline { @@ -56,7 +89,8 @@ --color-brand-ink: var(--brand-ink); --color-steel: var(--steel); --font-sans: "iran-yekan", Tahoma, sans-serif; - --font-display: var(--font-industrial), "Oswald", Impact, sans-serif; + --font-display: "Oswald", Impact, sans-serif; + --font-industrial: "Oswald", Impact, sans-serif; } * { @@ -83,7 +117,7 @@ body { } .font-industrial { - font-family: var(--font-industrial), "Oswald", Impact, sans-serif; + font-family: var(--font-industrial); unicode-bidi: isolate; } @@ -111,7 +145,7 @@ img { } .section-kicker { - font-family: var(--font-industrial), "Oswald", Impact, sans-serif; + font-family: var(--font-industrial); letter-spacing: 0.18em; text-transform: uppercase; color: var(--brand); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index ae4fa17..c988d30 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,13 +1,6 @@ import type { Metadata, Viewport } from "next"; -import { Oswald } from "next/font/google"; import "./globals.css"; -const oswald = Oswald({ - subsets: ["latin"], - variable: "--font-industrial", - weight: ["400", "500", "600", "700"], -}); - export const metadata: Metadata = { metadataBase: new URL("https://www.mashinify.com"), title: { @@ -47,7 +40,7 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - + {children} ); diff --git a/src/app/page.tsx b/src/app/page.tsx index 2622492..f96c71b 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -6,13 +6,15 @@ import { HeaderContainer } from "@/components/HeaderContainer"; import { Hero } from "@/components/Hero"; import { Products } from "@/components/Products"; import { SellCta } from "@/components/SellCta"; +import { getPrimaryPhoneNumber } from "@/lib/api/business"; import { listBlogs } from "@/lib/api/blogs"; import { listUserProducts } from "@/lib/api/user-products"; export default async function Home() { - const [userProducts, blogs] = await Promise.all([ + const [userProducts, blogs, phone] = await Promise.all([ listUserProducts({ page: 1, pageSize: 8 }), listBlogs({ page: 1, pageSize: 3 }), + getPrimaryPhoneNumber(), ]); return ( @@ -26,7 +28,7 @@ export default async function Home() { -