check lighthous
This commit is contained in:
@@ -11,7 +11,7 @@ import ClockD from "@/components/icons/ClockD";
|
|||||||
import LikeD from "@/components/icons/LikeD";
|
import LikeD from "@/components/icons/LikeD";
|
||||||
import PointD from "@/components/icons/PointD";
|
import PointD from "@/components/icons/PointD";
|
||||||
|
|
||||||
function ItemDoctor({ doctor, loading, setDoctors }) {
|
function ItemDoctor({ doctor, loading, setDoctors, priority = false }) {
|
||||||
const handleLoading = () => {
|
const handleLoading = () => {
|
||||||
setDoctors((prevDoctors) =>
|
setDoctors((prevDoctors) =>
|
||||||
prevDoctors.map((item) =>
|
prevDoctors.map((item) =>
|
||||||
@@ -33,6 +33,7 @@ function ItemDoctor({ doctor, loading, setDoctors }) {
|
|||||||
alt="image-doctor"
|
alt="image-doctor"
|
||||||
src={doctor?.img?.[0]?.url || "/assets/images/user.png"}
|
src={doctor?.img?.[0]?.url || "/assets/images/user.png"}
|
||||||
className="object-contain rounded-full w-[64px] md:w-[68px] lg:w-[72px] h-[64px] md:h-[68px] lg:h-[72px]"
|
className="object-contain rounded-full w-[64px] md:w-[68px] lg:w-[72px] h-[64px] md:h-[68px] lg:h-[72px]"
|
||||||
|
priority={priority}
|
||||||
/>
|
/>
|
||||||
</CircularLoading>
|
</CircularLoading>
|
||||||
<div className="flex flex-col items-start justify-center gap-2">
|
<div className="flex flex-col items-start justify-center gap-2">
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ function Logo({ isAbsolute, matchedCity }) {
|
|||||||
height={30}
|
height={30}
|
||||||
alt="logo"
|
alt="logo"
|
||||||
/>
|
/>
|
||||||
<p className="text-[#526CAC] text-[14px] lg:text-[16px] font-bold font-kalame">
|
<p className="text-[#526CAC] text-[14px] lg:text-[16px] font-bold">
|
||||||
{matchedCity?.site_name || "نوبت ۷۲۴"}
|
{matchedCity?.site_name || "نوبت ۷۲۴"}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+12
-64
@@ -2,116 +2,69 @@
|
|||||||
@tailwind components;
|
@tailwind components;
|
||||||
@tailwind utilities;
|
@tailwind utilities;
|
||||||
|
|
||||||
/* Font Kalame */
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: kalame;
|
|
||||||
src: url(../public/fonts/kalame/StandardFonts/TTF/Kalameh-Thin.ttf);
|
|
||||||
font-weight: 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: kalame;
|
|
||||||
src: url(../public/fonts/kalame/StandardFonts/TTF/Kalameh-ExtraLight.ttf);
|
|
||||||
font-weight: 200;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: kalame;
|
|
||||||
src: url(../public/fonts/kalame/StandardFonts/TTF/Kalameh-Light.ttf);
|
|
||||||
font-weight: 300;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: kalame;
|
|
||||||
src: url(../public/fonts/kalame/StandardFonts/TTF/Kalameh-Regular.ttf);
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: kalame;
|
|
||||||
src: url(../public/fonts/kalame/StandardFonts/TTF/Kalameh-Medium.ttf);
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: kalame;
|
|
||||||
src: url(../public/fonts/kalame/StandardFonts/TTF/Kalameh-SemiBold.ttf);
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: kalame;
|
|
||||||
src: url(../public/fonts/kalame/StandardFonts/TTF/Kalameh-Bold.ttf);
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: kalame;
|
|
||||||
src: url(../public/fonts/kalame/StandardFonts/TTF/Kalameh-ExtraBold.ttf);
|
|
||||||
font-weight: 800;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: kalame;
|
|
||||||
src: url(../public/fonts/kalame/StandardFonts/TTF/Kalameh-Black.ttf);
|
|
||||||
font-weight: 900;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Font Vazir */
|
/* Font Vazir */
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: vazir;
|
font-family: vazir;
|
||||||
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Thin.ttf);
|
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Thin.ttf);
|
||||||
font-weight: 100;
|
font-weight: 100;
|
||||||
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: vazir;
|
font-family: vazir;
|
||||||
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-ExtraLight.ttf);
|
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-ExtraLight.ttf);
|
||||||
font-weight: 200;
|
font-weight: 200;
|
||||||
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: vazir;
|
font-family: vazir;
|
||||||
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Light.ttf);
|
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Light.ttf);
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: vazir;
|
font-family: vazir;
|
||||||
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Regular.ttf);
|
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Regular.ttf);
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: vazir;
|
font-family: vazir;
|
||||||
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Medium.ttf);
|
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Medium.ttf);
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: vazir;
|
font-family: vazir;
|
||||||
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-SemiBold.ttf);
|
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-SemiBold.ttf);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: vazir;
|
font-family: vazir;
|
||||||
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Bold.ttf);
|
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Bold.ttf);
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: vazir;
|
font-family: vazir;
|
||||||
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-ExtraBold.ttf);
|
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-ExtraBold.ttf);
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: vazir;
|
font-family: vazir;
|
||||||
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Black.ttf);
|
src: url(../public/fonts/vazir/Vazirmatn-RD-FD-Black.ttf);
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
@@ -121,7 +74,9 @@ body {
|
|||||||
background: #fafafa;
|
background: #fafafa;
|
||||||
}
|
}
|
||||||
|
|
||||||
body * {
|
/* transition-colors only on theme-sensitive elements, not every DOM node */
|
||||||
|
.dark,
|
||||||
|
[data-theme] {
|
||||||
@apply transition-colors duration-500;
|
@apply transition-colors duration-500;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -147,9 +102,6 @@ html {
|
|||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.font-kalame {
|
|
||||||
font-family: kalame;
|
|
||||||
}
|
|
||||||
|
|
||||||
.auto-complete-selector .MuiInputBase-root svg path {
|
.auto-complete-selector .MuiInputBase-root svg path {
|
||||||
stroke: #525252 !important;
|
stroke: #525252 !important;
|
||||||
@@ -164,7 +116,6 @@ html {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.bg-banner-home {
|
.bg-banner-home {
|
||||||
background: url(../public/assets/images/banner-home.png);
|
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -292,9 +243,6 @@ html {
|
|||||||
border-radius: 8px !important;
|
border-radius: 8px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.MuiModal-root div:nth-child(3) {
|
|
||||||
/* border-radius: 0 !important; */
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hidden Scroll */
|
/* Hidden Scroll */
|
||||||
|
|||||||
+2
-4
@@ -16,9 +16,7 @@ export async function generateMetadata() {
|
|||||||
|
|
||||||
const baseMetadata = {
|
const baseMetadata = {
|
||||||
title: matchedCity ? matchedCity.title : "نوبت724",
|
title: matchedCity ? matchedCity.title : "نوبت724",
|
||||||
description: matchedCity
|
description: matchedCity?.description || "نوبت 724 - سیستم آنلاین نوبتدهی برای پزشکان و کلینیکها. با استفاده از نوبت 724، به راحتی نوبت پزشکی خود را به صورت آنلاین رزرو کنید و از خدمات سریع و کارآمد ما بهرهمند شوید",
|
||||||
? matchedCity.description
|
|
||||||
: "نوبت 724 - سیستم آنلاین نوبتدهی برای پزشکان و کلینیکها. با استفاده از نوبت 724، به راحتی نوبت پزشکی خود را به صورت آنلاین رزرو کنید و از خدمات سریع و کارآمد ما بهرهمند شوید",
|
|
||||||
keywords: matchedCity
|
keywords: matchedCity
|
||||||
? matchedCity.keywords
|
? matchedCity.keywords
|
||||||
: "نوبت 724, نوبت دهی, رزرو نوبت, پزشک, پزشکی, کلینیک, بیمارستان, نوبت آنلاین, سیستم نوبت دهی, سیستم نوبت دهی آنلاین, سیستم نوبت دهی پزشکی, سیستم نوبت دهی کلینیک, سیستم نوبت دهی بیمارستان, سیستم نوبت دهی آنلاین پزشکی, سیستم نوبت دهی آنلاین کلینیک, سیستم نوبت دهی آنلاین بیمارستان",
|
: "نوبت 724, نوبت دهی, رزرو نوبت, پزشک, پزشکی, کلینیک, بیمارستان, نوبت آنلاین, سیستم نوبت دهی, سیستم نوبت دهی آنلاین, سیستم نوبت دهی پزشکی, سیستم نوبت دهی کلینیک, سیستم نوبت دهی بیمارستان, سیستم نوبت دهی آنلاین پزشکی, سیستم نوبت دهی آنلاین کلینیک, سیستم نوبت دهی آنلاین بیمارستان",
|
||||||
@@ -62,7 +60,7 @@ export default function RootLayout({ children }) {
|
|||||||
<head>
|
<head>
|
||||||
<meta
|
<meta
|
||||||
name="viewport"
|
name="viewport"
|
||||||
content="width=device-width,initial-scale=1,maximum-scale=1"
|
content="width=device-width,initial-scale=1"
|
||||||
/>
|
/>
|
||||||
</head>
|
</head>
|
||||||
<ThemeRegistry>
|
<ThemeRegistry>
|
||||||
|
|||||||
@@ -57,11 +57,12 @@ function ListDoctors({
|
|||||||
<div className="mt-[24px] sm:mt-[37px] md:mt-[50px] lg:mt-[64px]">
|
<div className="mt-[24px] sm:mt-[37px] md:mt-[50px] lg:mt-[64px]">
|
||||||
{doctors && doctors.length ? (
|
{doctors && doctors.length ? (
|
||||||
<ul className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[24px]">
|
<ul className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[24px]">
|
||||||
{doctors?.map((doctor) => (
|
{doctors?.map((doctor, idx) => (
|
||||||
<ItemDoctor
|
<ItemDoctor
|
||||||
key={doctor.id}
|
key={doctor.id}
|
||||||
doctor={doctor}
|
doctor={doctor}
|
||||||
loading={loading}
|
loading={loading}
|
||||||
|
priority={idx < 3}
|
||||||
setDoctors={setDoctors}
|
setDoctors={setDoctors}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -13,26 +13,25 @@ function FrequentSearches() {
|
|||||||
<div className="overflow-auto hidden-scroll flex justify-start max-w-[620px]">
|
<div className="overflow-auto hidden-scroll flex justify-start max-w-[620px]">
|
||||||
<ul className="flex items-center justify-start gap-[14px] pl-[14px]">
|
<ul className="flex items-center justify-start gap-[14px] pl-[14px]">
|
||||||
{childrenList.map((item, idx) => (
|
{childrenList.map((item, idx) => (
|
||||||
<Link
|
<li key={item.id || idx}>
|
||||||
key={item.id || idx}
|
<Link
|
||||||
href={{
|
href={{
|
||||||
pathname: "/doctors",
|
pathname: "/doctors",
|
||||||
query: {
|
query: {
|
||||||
specialty: item.name,
|
specialty: item.name,
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<li>
|
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="secondary"
|
color="secondary"
|
||||||
className="!py-[6px] md:!py-[7px] lg:!py-[8px] !px-[12px] sm:!px-[14px] md:!px-[15px] lg:!px-[16px] !text-[12px] lg:!text-[14px]
|
className="!py-[6px] md:!py-[7px] lg:!py-[8px] !px-[12px] sm:!px-[14px] md:!px-[15px] lg:!px-[16px] !text-[12px] lg:!text-[14px]
|
||||||
!rounded-[4px] !shadow-none !font-normal !border !border-solid !border-[#D7D7D7] hover:!bg-[#EFEFEF]"
|
!rounded-[4px] !shadow-none !font-normal !border !border-solid !border-[#D7D7D7] hover:!bg-[#EFEFEF]"
|
||||||
>
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Button>
|
</Button>
|
||||||
</li>
|
</Link>
|
||||||
</Link>
|
</li>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ async function TextHeader() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="z-[50]">
|
<div className="z-[50]">
|
||||||
<h1 className="text-[#F17732] text-center font-kalame text-[20px] sm:text-[24px] md:text-[28px] lg:text-[32px] font-bold">
|
<h1 className="text-[#F17732] text-center text-[20px] sm:text-[24px] md:text-[28px] lg:text-[32px] font-bold">
|
||||||
با {matchedCity?.site_name}
|
با {matchedCity?.site_name}
|
||||||
</h1>
|
</h1>
|
||||||
<h2
|
<h2
|
||||||
className="text-[#525252] text-center mt-2.5 font-kalame text-[16px] sm:text-[25px] md:text-[31px] lg:text-[36px]
|
className="text-[#525252] text-center mt-2.5 text-[16px] sm:text-[25px] md:text-[31px] lg:text-[36px]
|
||||||
font-bold flex items-center gap-0.5 sm:gap-1 md:gap-2"
|
font-bold flex items-center gap-0.5 sm:gap-1 md:gap-2"
|
||||||
>
|
>
|
||||||
<div className="max-w-[18px] sm:max-w-[22px]">
|
<div className="max-w-[18px] sm:max-w-[22px]">
|
||||||
|
|||||||
@@ -1,11 +1,19 @@
|
|||||||
// Components
|
// Components
|
||||||
|
import Image from "next/image";
|
||||||
import SearchBar from "./search";
|
import SearchBar from "./search";
|
||||||
import TextHeader from "./TextHeader";
|
import TextHeader from "./TextHeader";
|
||||||
import FrequentSearches from "./FrequentSearches";
|
import FrequentSearches from "./FrequentSearches";
|
||||||
|
|
||||||
function HomePage() {
|
function HomePage() {
|
||||||
return (
|
return (
|
||||||
<div className="bg-banner-home after:z-[2] !bg-bottom !bg-no-repeat !bg-cover md:!min-h-[115vh]">
|
<div className="bg-banner-home after:z-[2] md:!min-h-[115vh]">
|
||||||
|
<Image
|
||||||
|
src="/assets/images/banner-home.png"
|
||||||
|
alt=""
|
||||||
|
fill
|
||||||
|
priority
|
||||||
|
className="!object-cover !object-bottom -z-10"
|
||||||
|
/>
|
||||||
<div className="padding-responsive z-20 min-h-screen py-[120px] flex items-center justify-center flex-col gap-[40px]">
|
<div className="padding-responsive z-20 min-h-screen py-[120px] flex items-center justify-center flex-col gap-[40px]">
|
||||||
<TextHeader />
|
<TextHeader />
|
||||||
<SearchBar />
|
<SearchBar />
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ function Footer({ matchedCity }) {
|
|||||||
<Link
|
<Link
|
||||||
href={matchedCity?.socialMedia[item.name] || "/"}
|
href={matchedCity?.socialMedia[item.name] || "/"}
|
||||||
className="min-h-fit"
|
className="min-h-fit"
|
||||||
|
aria-label={item.name}
|
||||||
>
|
>
|
||||||
{item.icon}
|
{item.icon}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ const nextConfig = {
|
|||||||
// Add other configurations below
|
// Add other configurations below
|
||||||
reactStrictMode: true,
|
reactStrictMode: true,
|
||||||
images: {
|
images: {
|
||||||
unoptimized: true,
|
|
||||||
remotePatterns: [
|
remotePatterns: [
|
||||||
{
|
{
|
||||||
protocol: 'https',
|
protocol: 'https',
|
||||||
|
|||||||
Reference in New Issue
Block a user