feat(aboutUs): enhance Head component with siteName and slogan props; update Services content formatting

This commit is contained in:
hamed
2026-06-19 00:39:02 +03:30
parent e9136ea42b
commit 8b23f1f831
4 changed files with 43 additions and 39 deletions
+7 -5
View File
@@ -1,10 +1,7 @@
import { getStateInfo } from "@/lib/getStateInfo";
import Image from "next/image"; import Image from "next/image";
import React from "react"; import React from "react";
function Head() { function Head({ siteName, slogan }) {
const { matchedCity } = getStateInfo();
return ( return (
<div className="bg-[#5559C2] rounded-none md:rounded-lg w-full py-[24px] flex flex-col items-center justify-center gap-[13px] md:gap-[16px]"> <div className="bg-[#5559C2] rounded-none md:rounded-lg w-full py-[24px] flex flex-col items-center justify-center gap-[13px] md:gap-[16px]">
<Image <Image
@@ -14,8 +11,13 @@ function Head() {
alt="logo" alt="logo"
/> />
<h1 className="text-[#FAFAFA] text-[16px] sm:text-[18px] md:text-[22px] lg:text-[24px] font-bold"> <h1 className="text-[#FAFAFA] text-[16px] sm:text-[18px] md:text-[22px] lg:text-[24px] font-bold">
درباره {matchedCity?.site_name} درباره {siteName}
</h1> </h1>
{slogan && (
<p className="text-[#E5E5F5] text-[12px] sm:text-[14px] md:text-[16px] font-normal px-[16px] text-center">
{slogan}
</p>
)}
</div> </div>
); );
} }
+5 -5
View File
@@ -3,12 +3,12 @@ import UnderlineLG from "../icons/UnderlineLG";
import TickOrangeA from "../icons/TickOrangeA"; import TickOrangeA from "../icons/TickOrangeA";
const ourServices = [ const ourServices = [
"جستجوی سریع پزشک ", "جستجوی سریع پزشک",
"جستجوی کلینیک و مراکز درمانی", "جستجوی کلینیک و مراکز درمانی",
"نوبت گیری راحت و آسان", "نوبتگیری راحت و آسان",
"دشبورد تخصصی بیمار", اشبورد تخصصی بیمار",
"دشبورد تخصصی پزشک", اشبورد تخصصی پزشک",
"نوبت گیری راحت و آسان", "پشتیبانی و یادآوری نوبت",
]; ];
function Services() { function Services() {
+23 -15
View File
@@ -1,7 +1,12 @@
import { getStateInfo } from "@/lib/getStateInfo";
import Head from "./Head"; import Head from "./Head";
import Services from "./Services"; import Services from "./Services";
function AboutUsPage() { async function AboutUsPage() {
const { matchedCity } = await getStateInfo();
const siteName = matchedCity?.site_name || "نوبت ۷۲۴";
const slogan = matchedCity?.slogan;
return ( return (
<div <div
className=" className="
@@ -9,24 +14,27 @@ function AboutUsPage() {
px-0 md:px-[80px] lg:px-[108px] px-0 md:px-[80px] lg:px-[108px]
" "
> >
<Head /> <Head siteName={siteName} slogan={slogan} />
<h2 <div
className=" className="
text-[#525252] text-[16px] font-normal mt-[32px] leading-[24px] md:leading-[32px] lg:leading-[40px] text-[#525252] text-[16px] font-normal mt-[32px] leading-[28px] md:leading-[32px] lg:leading-[40px]
px-[16px] sm:px-[52px] md:px-[15%] text-justify md:text-center px-[16px] sm:px-[52px] md:px-[15%] text-justify md:text-center
flex flex-col gap-[16px]
" "
> >
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده <p>
از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و {siteName} یک سامانهی آنلاین نوبتدهی پزشکی است که با هدف سادهتر کردن
سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای دسترسی مردم به خدمات سلامت طراحی شده است. ما تلاش میکنیم تجربهی رزرو
متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه نوبت پزشک را سریع، شفاف و بدون نیاز به مراجعهی حضوری یا تماس تلفنی
درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با فراهم کنیم.
نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان </p>
خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید <p>
داشت که تمام و دشواری موجود در ارائه راهکارها، و شرایط سخت تایپ به پایان در {siteName} میتوانید بر اساس تخصص، نام پزشک یا مرکز درمانی جستجو
رسد و زمان مورد نیاز شامل حروفچینی دستاوردهای اصلی، و جوابگوی سوالات کنید، برنامهی کاری و نوبتهای آزاد را ببینید و در کمترین زمان ممکن
پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد. نوبت خود را ثبت کنید. هدف ما کاهش زمان انتظار و ایجاد ارتباط مؤثر میان
</h2> بیماران، پزشکان و کلینیکهاست.
</p>
</div>
<Services /> <Services />
</div> </div>
); );
+8 -14
View File
@@ -5,30 +5,24 @@ import Link from "next/link";
import { convertTimestampToJalali, imageUrl } from "@/helper"; import { convertTimestampToJalali, imageUrl } from "@/helper";
function Item({ data, idx, loading }) { function Item({ data, idx, loading }) {
const cover = data?.images?.[0]?.url ? imageUrl(data.images[0].url) : ""; const cover = data?.images?.[0]?.url
? imageUrl(data.images[0].url)
: "/assets/images/cover-blog-1.png";
const createdDate = data?.created ? convertTimestampToJalali(data.created) : ""; const createdDate = data?.created ? convertTimestampToJalali(data.created) : "";
return ( return (
<li className="flex relative items-center justify-start gap-[8px] py-[12px] sm:py-[15px] md:py-[18px] lg:py-[20px]"> <li className="flex relative items-center justify-start gap-[8px] py-[12px] sm:py-[15px] md:py-[18px] lg:py-[20px]">
<CustomLoading width={80} height={72} loading={loading}> <CustomLoading width={80} height={72} loading={loading}>
<Link href={`/blog/${data.uuid}`}> <Link href={`/blog/${data.uuid}`}>
{cover && cover.trim() !== "" ? ( <img
<img className="
className="
w-[64px] sm:w-[73px] md:w-[85px] lg:w-[97px] w-[64px] sm:w-[73px] md:w-[85px] lg:w-[97px]
h-[56px] sm:h-[64px] md:h-[75px] lg:h-[88px] h-[56px] sm:h-[64px] md:h-[75px] lg:h-[88px]
rounded-[8px] overflow-hidden object-cover rounded-[8px] overflow-hidden object-cover
" "
src={cover} src={cover}
alt={data.title || "article"} alt={data.title || "article"}
/> />
) : (
<div className="
w-[64px] sm:w-[73px] md:w-[85px] lg:w-[97px]
h-[56px] sm:h-[64px] md:h-[75px] lg:h-[88px]
rounded-[8px] overflow-hidden bg-gray-200
"></div>
)}
</Link> </Link>
</CustomLoading> </CustomLoading>
<div className="flex flex-col gap-[16px] sm:gap-[18px] md:gap-[21px] lg:gap-[24px] items-start justify-between"> <div className="flex flex-col gap-[16px] sm:gap-[18px] md:gap-[21px] lg:gap-[24px] items-start justify-between">