From a825552d69f02cb12bee4be48b386140a6febca6 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 12:42:49 +0330 Subject: [PATCH 01/45] [UPDATE] global.css + setting light mode --- src/app/globals.css | 83 +++++++++++++++++++++++++++++---------------- 1 file changed, 53 insertions(+), 30 deletions(-) diff --git a/src/app/globals.css b/src/app/globals.css index 4606fa3..9ed6d41 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,29 +1,50 @@ :root { - --color-gray-98: hsl(0deg 0% 98%); - --color-gray-90: hsl(0deg 0% 90%); - --color-gray-80: hsl(0deg 0% 80%); - --color-gray-70: hsl(0deg 0% 70%); - --color-gray-40: hsl(0deg 0% 40%); - --color-gray-30: hsl(0deg 0% 30%); - --color-gray-20: hsl(0deg 0% 20%); - --color-gray-16: hsl(0deg 0% 16%); - --color-gray-12: hsl(0deg 0% 12%); - --color-gray-10: hsl(0deg 0% 10%); - - --color-default-background: var(--color-gray-10); - --color-default-foreground: var(--color-gray-98); - - --color-primary: hsl(120deg 50% 48%); - --color-primary-fade: hsl(120deg 50% 96%); - --color-primary-lighter: hsl(120deg 50% 52%); - --color-primary-darker: hsl(120deg 50% 44%); - --color-primary-opposite: var(--color-gray-10); - - --color-danger: hsl(0, 47.5%, 50%); - --color-danger-darker: hsl(360, 61.5%, 42.5%); - --color-warning: hsl(57, 100%, 50%); - - --border-radius: 0.875rem; + --color-gray-99: hsl(200deg 10% 99%); + --color-gray-97: hsl(200deg 10% 97%); + --color-gray-93: hsl(200deg 10% 93%); + --color-gray-90: hsl(200deg 10% 93%); + --color-gray-80: hsl(200deg 10% 80%); + --color-gray-70: hsl(200deg 10% 70%); + --color-gray-40: hsl(200deg 10% 40%); + --color-gray-30: hsl(200deg 10% 30%); + --color-gray-20: hsl(200deg 10% 20%); + --color-gray-16: hsl(200deg 10% 16%); + --color-gray-12: hsl(200deg 10% 12%); + --color-gray-10: hsl(200deg 10% 10%); + + --color-surface-300: var(--color-gray-93); + --color-surface-400: var(--color-gray-97); + --color-surface-700: var(--color-gray-99); + + --color-text-400: var(--color-gray-10); + --color-text-700: var(--color-gray-40); + + --color-primary: hsl(200deg 90% 46%); + --color-primary-fade: hsl(200deg 90% 96%); + --color-primary-lighter: hsl(200deg 90% 50%); + --color-primary-darker: hsl(200deg 90% 42%); + --color-primary-opposite: var(--color-gray-99); + + --color-danger: hsl(10deg 80% 48%); + --color-danger-fade: hsl(10deg 80% 96%); + --color-danger-lighter: hsl(10deg 80% 52%); + --color-danger-darker: hsl(10deg 80% 44%); + --color-danger-opposite: var(--color-gray-99); + + --color-star: hsl(50deg 100% 50%); + + --color-border: var(--color-gray-80); + + --shadow-300: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --shadow-400: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --shadow-500: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --shadow-700: 0 10px 15px -3px rgb(0 0 0 / 0.1), + 0 4px 6px -4px rgb(0 0 0 / 0.1); + --shadow-800: 0 20px 25px -5px rgb(0 0 0 / 0.1), + 0 8px 10px -6px rgb(0 0 0 / 0.1); + --shadow-900: 0 25px 50px -12px rgb(0 0 0 / 0.25); + + --border-radius: 0.75rem; --full-width: 75rem; --full-width-padding-inline: calc(max(100% - var(--full-width), 2rem) / 2); @@ -43,7 +64,9 @@ } html { - color-scheme: dark; + color-scheme: light; + accent-color: var(--color-primary); + caret-color: var(--color-primary); } input, @@ -65,7 +88,7 @@ ul { } p { - color: var(--color-gray-80); + color: var(--color-text-700); } a { @@ -74,8 +97,8 @@ a { } body { - background-color: var(--color-default-background); - color: var(--color-default-foreground); + background-color: var(--color-surface-400); + color: var(--color-text-400); display: grid; grid-template-rows: auto 1fr auto; @@ -90,7 +113,7 @@ body { } .tagline { - background-color: var(--color-gray-16); + background-color: var(--color-surface-300); padding-block: 1rem; text-align: center; } From 3cdb4961ed30fe2d3def1c79b9c7f877e381e2e6 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 12:43:24 +0330 Subject: [PATCH 02/45] [UPDATE] footer color style --- src/assets/logo/certificate.svg | 2 +- src/assets/logo/enamad.svg | 4 ++-- src/assets/logo/idk.svg | 8 ++++---- src/components/footer/footer.module.css | 5 +++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/assets/logo/certificate.svg b/src/assets/logo/certificate.svg index 0876d71..bc573bd 100644 --- a/src/assets/logo/certificate.svg +++ b/src/assets/logo/certificate.svg @@ -4,7 +4,7 @@ diff --git a/src/assets/logo/enamad.svg b/src/assets/logo/enamad.svg index 732c7d3..dad796e 100644 --- a/src/assets/logo/enamad.svg +++ b/src/assets/logo/enamad.svg @@ -5,11 +5,11 @@ diff --git a/src/assets/logo/idk.svg b/src/assets/logo/idk.svg index f74858d..ddf5947 100644 --- a/src/assets/logo/idk.svg +++ b/src/assets/logo/idk.svg @@ -5,17 +5,17 @@ - + diff --git a/src/components/footer/footer.module.css b/src/components/footer/footer.module.css index addd0f2..0b3d614 100644 --- a/src/components/footer/footer.module.css +++ b/src/components/footer/footer.module.css @@ -1,5 +1,5 @@ .footer { - background-color: var(--color-gray-12); + background-color: var(--color-surface-400); display: grid; grid-template-areas: "writings visuals" "copy copy"; @@ -37,7 +37,8 @@ > li { a { - font-size: var(--fz-500); + color: var(--color-text-700); + font-size: 1.5em; } } } From 73017fd5a8da3030dc31e18c4961f647089fea9d Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 12:47:42 +0330 Subject: [PATCH 03/45] [UPDATE] search component color style --- .../global-search-box/global-search-box.module.css | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/components/global-search-box/global-search-box.module.css b/src/components/global-search-box/global-search-box.module.css index 7122154..78bf4b7 100644 --- a/src/components/global-search-box/global-search-box.module.css +++ b/src/components/global-search-box/global-search-box.module.css @@ -1,4 +1,6 @@ .global-search-box { + background-color: var(--color-surface-700); + display: flex; align-items: center; gap: 0.5rem; @@ -7,14 +9,14 @@ padding-inline: 1rem; - border: 1px solid var(--color-gray-20); + border: 1px solid var(--color-border); border-radius: 999rem; .prefix { display: grid; align-items: center; - font-size: var(--fz-500); + font-size: 1.5em; } input { @@ -34,7 +36,7 @@ } .divider { - background-color: var(--color-gray-20); + background-color: var(--color-border); block-size: 2em; inline-size: 1px; @@ -60,7 +62,7 @@ } &:hover { - background-color: var(--color-gray-16); + background-color: var(--color-surface-300); } } } From bbc1d96efc4ae8e78343b3c1148c5dc29e32f2fa Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 12:50:33 +0330 Subject: [PATCH 04/45] [UPDATE] header color style --- src/components/header/header.module.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/header/header.module.css b/src/components/header/header.module.css index b0bf77d..8cc9005 100644 --- a/src/components/header/header.module.css +++ b/src/components/header/header.module.css @@ -1,4 +1,7 @@ .header { + background-color: var(--color-surface-700); + box-shadow: var(--shadow-400); + display: flex; align-items: center; gap: 2rem; From 93b60366604a4c942234f9d56a514f2217e1a3c5 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 12:52:52 +0330 Subject: [PATCH 05/45] [UPDATE] last search item - color style --- src/app/page.module.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/page.module.css b/src/app/page.module.css index 8dd4f0a..474f687 100644 --- a/src/app/page.module.css +++ b/src/app/page.module.css @@ -34,7 +34,8 @@ gap: 1rem; > li { - background-color: var(--color-gray-20); + background-color: var(--color-surface-700); + box-shadow: var(--shadow-400); padding: 0.25rem 0.75rem; From cdc5ae60734ef5e4c13951892f8109acd1276831 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 15:44:07 +0330 Subject: [PATCH 06/45] [UPDATE] doctor item card changed color style --- .../components/item/item.module.css | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/app/doctors/[[...slug]]/components/item/item.module.css b/src/app/doctors/[[...slug]]/components/item/item.module.css index 997af0f..2997403 100644 --- a/src/app/doctors/[[...slug]]/components/item/item.module.css +++ b/src/app/doctors/[[...slug]]/components/item/item.module.css @@ -4,9 +4,10 @@ padding: 1rem; height: auto; - background-color: var(--color-gray-20); + background-color: var(--color-surface-700); + box-shadow: var(--shadow-400); - border-radius: 0.5rem; + border-radius: var(--border-radius); .info { display: flex; @@ -17,7 +18,7 @@ .image { border-radius: 0.7rem; - border: 0.24rem solid var(--color-gray-98); + border: 0.2rem solid var(--color-border); } .name { @@ -34,7 +35,7 @@ align-items: center; gap: 0.15rem; - background-color: var(--color-gray-30); + background-color: var(--color-surface-300); width: fit-content; @@ -46,7 +47,7 @@ font-size: var(--fz-100); .star { - color: var(--color-warning); + color: var(--color-star); margin-top: 2px; } } @@ -59,14 +60,14 @@ margin-block-start: 2rem; .badge_item { - background-color: var(--color-gray-40); + background-color: var(--color-surface-400); width: fit-content; font-size: var(--fz-100); - padding-block: 0.1rem; - padding-inline: 0.2rem; - border-radius: 0.2rem; + padding-block: 0.3rem; + padding-inline: 0.4rem; + border-radius: var(--border-radius); } } @@ -74,6 +75,8 @@ margin-block-start: 1.5rem; address { + color:var(--color-gray-40); + font-style: normal; font-size: var(--fz-200); @@ -97,19 +100,22 @@ align-items: center; gap: 0.15rem; + font-size: var(--fz-200); + background-color: var(--color-primary); + color: var(--color-primary-opposite); border: none; - border-radius: 0.2rem; + border-radius: var(--border-radius); - padding: 0.3rem; + padding: 0.5rem; cursor: pointer; transition: 0.2s ease-in-out; transition-property: background-color, color; &:hover { - background-color: var(--color-primary-fade); + background-color: var(--color-primary-darker); color: var(--color-primary-opposite); } } From 64f77ba884cc215536e46475cb49098892385212 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 15:52:56 +0330 Subject: [PATCH 07/45] [UPDATE] filter component color style --- .../components/filter/clear-all-filter.module.css | 4 ++++ src/components/card/card.module.css | 3 ++- src/components/filter-button/filter-button.module.css | 8 +++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css b/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css index 7b5a487..547c081 100644 --- a/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css +++ b/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css @@ -1,11 +1,15 @@ .clear { width: 100%; + border-radius: var(--border-radius); background-color: var(--color-danger); + color: var(--color-primary-opposite); cursor: pointer; + padding-block: 0.4rem; + &:hover { background-color: var(--color-danger-darker); } diff --git a/src/components/card/card.module.css b/src/components/card/card.module.css index d74b286..87e98ba 100644 --- a/src/components/card/card.module.css +++ b/src/components/card/card.module.css @@ -1,5 +1,6 @@ .card { - background-color: var(--color-gray-16); + background-color: var(--color-surface-700); + box-shadow: var(--shadow-400); padding: 1rem; diff --git a/src/components/filter-button/filter-button.module.css b/src/components/filter-button/filter-button.module.css index 071931e..ada77ec 100644 --- a/src/components/filter-button/filter-button.module.css +++ b/src/components/filter-button/filter-button.module.css @@ -1,13 +1,15 @@ .filter-button { background-color: transparent; - color: inherit; + /* color: inherit; */ + color: var(--color-text-700); display: grid; place-content: center; padding: 0.5rem 1rem; - border: 1px solid currentcolor; + /* border: 1px solid currentcolor; */ + border: 1px solid var(--color-border); border-radius: var(--border-radius); transition: 0.2s ease-in-out; @@ -16,7 +18,7 @@ cursor: pointer; &:hover { - background-color: var(--color-primary-fade); + background-color: var(--color-primary-lighter); color: var(--color-primary-opposite); } From e7164e6da9672895017521b93046641922dd2a71 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 16:30:51 +0330 Subject: [PATCH 08/45] [UPDATE] next config for support remote images --- next.config.mjs | 15 ++++++++++++++- .../[[...slug]]/components/item/item.module.css | 2 ++ src/models/doctors.ts | 10 +++++----- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/next.config.mjs b/next.config.mjs index 4678774..26bfa4f 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,4 +1,17 @@ /** @type {import('next').NextConfig} */ -const nextConfig = {}; +const nextConfig = { + images: { + remotePatterns: [ + { + protocol: "https", + hostname: "cdn.paziresh24.com", + }, + ], + }, + +// images: { +// domains: ['assets.acme.com'], +// }, +}; export default nextConfig; diff --git a/src/app/doctors/[[...slug]]/components/item/item.module.css b/src/app/doctors/[[...slug]]/components/item/item.module.css index 2997403..94caa29 100644 --- a/src/app/doctors/[[...slug]]/components/item/item.module.css +++ b/src/app/doctors/[[...slug]]/components/item/item.module.css @@ -19,6 +19,8 @@ .image { border-radius: 0.7rem; border: 0.2rem solid var(--color-border); + + object-fit: cover; } .name { diff --git a/src/models/doctors.ts b/src/models/doctors.ts index 6745609..7d996fc 100644 --- a/src/models/doctors.ts +++ b/src/models/doctors.ts @@ -4,7 +4,7 @@ export const doctorsData: DoctorModel[] = [ { id: "97420f0d-b576-4f65-9ffc-a81b4b1b4e77", name: "پوراندخت جعفري", - image: "", + image: "https://cdn.paziresh24.com/getImage/p24/search-women/8cd097208180a48ff5206f6122b9a5a5.jpg?size=150", isVerified: true, averageRating: 4.99, totalVotes: 294, @@ -36,7 +36,7 @@ export const doctorsData: DoctorModel[] = [ { id: "e6719f23-e846-4a95-88f9-c013c5d9cb4f", name: "مجتبی قدسی", - image: "", + image: "https://cdn.paziresh24.com/getImage/p24/search-men/9b45c32fe70f1321b4b349bc1a5aff9c.jpeg?size=150", isVerified: true, averageRating: 4.92, totalVotes: 1487, @@ -68,7 +68,7 @@ export const doctorsData: DoctorModel[] = [ { id: "4a7403d4-e0a2-406c-8dea-3e557bae54d2", name: "امیرحسین پورداود", - image: "", + image: "https://cdn.paziresh24.com/getImage/p24/search-men/ac84246810671c2744de34cb4e938aa2.jpg?size=150", isVerified: true, averageRating: 5, totalVotes: 190, @@ -99,7 +99,7 @@ export const doctorsData: DoctorModel[] = [ { id: "06d3a495-160d-4722-815e-286ff5d82ed2", name: "اعظم قهساره اردستانی", - image: "", + image: "https://cdn.paziresh24.com/getImage/p24/search-women/dc1c321cabe87e09772530d3480d2adc.jpg?size=150", isVerified: true, averageRating: 4.95, totalVotes: 759, @@ -131,7 +131,7 @@ export const doctorsData: DoctorModel[] = [ { id: "7f39ff5b-4c81-4c59-80fa-7872b675bb18", name: "رضا پورعلی", - image: "", + image: "https://cdn.paziresh24.com/getImage/p24/search-men/c0a4da00da796354da26c3b1ed016ab3.png?size=150", isVerified: true, averageRating: 4.8259, totalVotes: 305, From 94697957c597836a214d0892895e9730d4f04c41 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 16:33:17 +0330 Subject: [PATCH 09/45] [UPDATE] mock data reduce doctor id --- src/models/doctors.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/models/doctors.ts b/src/models/doctors.ts index 7d996fc..2fc9be7 100644 --- a/src/models/doctors.ts +++ b/src/models/doctors.ts @@ -2,7 +2,7 @@ import { DoctorModel } from "@/types/doctor.type"; export const doctorsData: DoctorModel[] = [ { - id: "97420f0d-b576-4f65-9ffc-a81b4b1b4e77", + id: "9ffc", name: "پوراندخت جعفري", image: "https://cdn.paziresh24.com/getImage/p24/search-women/8cd097208180a48ff5206f6122b9a5a5.jpg?size=150", isVerified: true, @@ -34,7 +34,7 @@ export const doctorsData: DoctorModel[] = [ }, }, { - id: "e6719f23-e846-4a95-88f9-c013c5d9cb4f", + id: "88f9", name: "مجتبی قدسی", image: "https://cdn.paziresh24.com/getImage/p24/search-men/9b45c32fe70f1321b4b349bc1a5aff9c.jpeg?size=150", isVerified: true, @@ -66,7 +66,7 @@ export const doctorsData: DoctorModel[] = [ }, }, { - id: "4a7403d4-e0a2-406c-8dea-3e557bae54d2", + id: "406c", name: "امیرحسین پورداود", image: "https://cdn.paziresh24.com/getImage/p24/search-men/ac84246810671c2744de34cb4e938aa2.jpg?size=150", isVerified: true, @@ -97,7 +97,7 @@ export const doctorsData: DoctorModel[] = [ }, }, { - id: "06d3a495-160d-4722-815e-286ff5d82ed2", + id: "160d", name: "اعظم قهساره اردستانی", image: "https://cdn.paziresh24.com/getImage/p24/search-women/dc1c321cabe87e09772530d3480d2adc.jpg?size=150", isVerified: true, @@ -129,7 +129,7 @@ export const doctorsData: DoctorModel[] = [ }, }, { - id: "7f39ff5b-4c81-4c59-80fa-7872b675bb18", + id: "4c81", name: "رضا پورعلی", image: "https://cdn.paziresh24.com/getImage/p24/search-men/c0a4da00da796354da26c3b1ed016ab3.png?size=150", isVerified: true, From 3ba925f347580049c827dbe571c0b0356e0c5067 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 16:41:37 +0330 Subject: [PATCH 10/45] [UPDATE] doctor mock data --- src/models/doctors.ts | 5 +++++ src/types/doctor.type.ts | 1 + 2 files changed, 6 insertions(+) diff --git a/src/models/doctors.ts b/src/models/doctors.ts index 2fc9be7..079baf5 100644 --- a/src/models/doctors.ts +++ b/src/models/doctors.ts @@ -4,6 +4,7 @@ export const doctorsData: DoctorModel[] = [ { id: "9ffc", name: "پوراندخت جعفري", + slug: "dr-pourandokht-jafari", image: "https://cdn.paziresh24.com/getImage/p24/search-women/8cd097208180a48ff5206f6122b9a5a5.jpg?size=150", isVerified: true, averageRating: 4.99, @@ -36,6 +37,7 @@ export const doctorsData: DoctorModel[] = [ { id: "88f9", name: "مجتبی قدسی", + slug: "dr-mojtaba-ghodsi", image: "https://cdn.paziresh24.com/getImage/p24/search-men/9b45c32fe70f1321b4b349bc1a5aff9c.jpeg?size=150", isVerified: true, averageRating: 4.92, @@ -68,6 +70,7 @@ export const doctorsData: DoctorModel[] = [ { id: "406c", name: "امیرحسین پورداود", + slug: "dr-amirhossein-pourdavood", image: "https://cdn.paziresh24.com/getImage/p24/search-men/ac84246810671c2744de34cb4e938aa2.jpg?size=150", isVerified: true, averageRating: 5, @@ -99,6 +102,7 @@ export const doctorsData: DoctorModel[] = [ { id: "160d", name: "اعظم قهساره اردستانی", + slug: "dr-azam-ghahsareh-ardestani", image: "https://cdn.paziresh24.com/getImage/p24/search-women/dc1c321cabe87e09772530d3480d2adc.jpg?size=150", isVerified: true, averageRating: 4.95, @@ -131,6 +135,7 @@ export const doctorsData: DoctorModel[] = [ { id: "4c81", name: "رضا پورعلی", + slug: "dr-reza-pourali", image: "https://cdn.paziresh24.com/getImage/p24/search-men/c0a4da00da796354da26c3b1ed016ab3.png?size=150", isVerified: true, averageRating: 4.8259, diff --git a/src/types/doctor.type.ts b/src/types/doctor.type.ts index 2deb582..32eb3a2 100644 --- a/src/types/doctor.type.ts +++ b/src/types/doctor.type.ts @@ -17,6 +17,7 @@ export interface Appointment { export interface DoctorModel { id: string; name: string; + slug: string; image: string; isVerified: boolean; averageRating: number; From a427fba81eb6eff1b9cfc5c54cc2fe56ad03dddf Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 16:56:21 +0330 Subject: [PATCH 11/45] [UPDATE] doctor mock data --- src/models/doctors.ts | 20 ++++++++++---------- src/types/doctor.type.ts | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/models/doctors.ts b/src/models/doctors.ts index 079baf5..dd9d056 100644 --- a/src/models/doctors.ts +++ b/src/models/doctors.ts @@ -2,9 +2,9 @@ import { DoctorModel } from "@/types/doctor.type"; export const doctorsData: DoctorModel[] = [ { - id: "9ffc", + slug: "9ffc", name: "پوراندخت جعفري", - slug: "dr-pourandokht-jafari", + en_name: "dr-pourandokht-jafari", image: "https://cdn.paziresh24.com/getImage/p24/search-women/8cd097208180a48ff5206f6122b9a5a5.jpg?size=150", isVerified: true, averageRating: 4.99, @@ -35,9 +35,9 @@ export const doctorsData: DoctorModel[] = [ }, }, { - id: "88f9", + slug: "88f9", name: "مجتبی قدسی", - slug: "dr-mojtaba-ghodsi", + en_name: "dr-mojtaba-ghodsi", image: "https://cdn.paziresh24.com/getImage/p24/search-men/9b45c32fe70f1321b4b349bc1a5aff9c.jpeg?size=150", isVerified: true, averageRating: 4.92, @@ -68,9 +68,9 @@ export const doctorsData: DoctorModel[] = [ }, }, { - id: "406c", + slug: "406c", name: "امیرحسین پورداود", - slug: "dr-amirhossein-pourdavood", + en_name: "dr-amirhossein-pourdavood", image: "https://cdn.paziresh24.com/getImage/p24/search-men/ac84246810671c2744de34cb4e938aa2.jpg?size=150", isVerified: true, averageRating: 5, @@ -100,9 +100,9 @@ export const doctorsData: DoctorModel[] = [ }, }, { - id: "160d", + slug: "160d", name: "اعظم قهساره اردستانی", - slug: "dr-azam-ghahsareh-ardestani", + en_name: "dr-azam-ghahsareh-ardestani", image: "https://cdn.paziresh24.com/getImage/p24/search-women/dc1c321cabe87e09772530d3480d2adc.jpg?size=150", isVerified: true, averageRating: 4.95, @@ -133,9 +133,9 @@ export const doctorsData: DoctorModel[] = [ }, }, { - id: "4c81", + slug: "4c81", name: "رضا پورعلی", - slug: "dr-reza-pourali", + en_name: "dr-reza-pourali", image: "https://cdn.paziresh24.com/getImage/p24/search-men/c0a4da00da796354da26c3b1ed016ab3.png?size=150", isVerified: true, averageRating: 4.8259, diff --git a/src/types/doctor.type.ts b/src/types/doctor.type.ts index 32eb3a2..a189f71 100644 --- a/src/types/doctor.type.ts +++ b/src/types/doctor.type.ts @@ -15,9 +15,9 @@ export interface Appointment { } export interface DoctorModel { - id: string; - name: string; slug: string; + name: string; + en_name: string; image: string; isVerified: boolean; averageRating: number; From 995e5ab0f39c03b2686f34d336597ce9a1367ede Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 16:58:35 +0330 Subject: [PATCH 12/45] [ADD] doctor page and find correct doctor --- src/app/doctor/[[...slug]]/page.tsx | 36 +++++++++++++++++++ .../components/list/list.component.tsx | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/app/doctor/[[...slug]]/page.tsx diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx new file mode 100644 index 0000000..bf42993 --- /dev/null +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -0,0 +1,36 @@ +import { ReactElement } from "react"; + +import { notFound } from "next/navigation"; + +import { DoctorModel } from "@/types/doctor.type"; + +import { doctorsData } from "@/models/doctors"; + + +type Props = { + params: { + slug: string; + }; +} + +const DoctorPage: React.FC = ({ params }): ReactElement => { + let slug = ""; + if (!Array.isArray(params.slug)) return notFound(); + if (params.slug.length === 1) { + slug = params.slug[0]; + } else if (params.slug.length === 2) { + slug = params.slug[1]; + } else return notFound(); + + + const doctorDetails = doctorsData.filter((doctor: DoctorModel) => (slug === doctor.slug)) + + if (doctorDetails.length === 0) return notFound() + + + return ( +
{slug}
+ ) +} + +export default DoctorPage; diff --git a/src/app/doctors/[[...slug]]/components/list/list.component.tsx b/src/app/doctors/[[...slug]]/components/list/list.component.tsx index 78ac2a2..477cd9f 100644 --- a/src/app/doctors/[[...slug]]/components/list/list.component.tsx +++ b/src/app/doctors/[[...slug]]/components/list/list.component.tsx @@ -19,7 +19,7 @@ const ListComponent = ({ return (
    {doctors.map((item: DoctorModel) => ( - + ))} From cfb5bb26e51b2460a4f55573a6f67eb309ecb922 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 18:12:16 +0330 Subject: [PATCH 13/45] [UPDATE] created doctor image component --- .../components/item/item.component.tsx | 26 +++++--------- .../components/item/item.module.css | 7 ---- .../doctor-image/doctor-image.component.tsx | 34 +++++++++++++++++++ .../doctor-image/doctor-image.module.css | 6 ++++ 4 files changed, 48 insertions(+), 25 deletions(-) create mode 100644 src/components/common/doctor-image/doctor-image.component.tsx create mode 100644 src/components/common/doctor-image/doctor-image.module.css diff --git a/src/app/doctors/[[...slug]]/components/item/item.component.tsx b/src/app/doctors/[[...slug]]/components/item/item.component.tsx index ab85083..3c48936 100644 --- a/src/app/doctors/[[...slug]]/components/item/item.component.tsx +++ b/src/app/doctors/[[...slug]]/components/item/item.component.tsx @@ -1,18 +1,15 @@ import { ReactElement } from "react"; -import Image from "next/image"; +import DoctorImageComponent from "@/components/common/doctor-image/doctor-image.component"; import { MingcuteStarFill } from "@/icons/MingcuteStarFill"; +import { MingcuteLocationFill } from "@/icons/MingcuteLocationFill"; +import { MingcuteArrowLeftLine } from "@/icons/MingcuteArrowLeftLine"; import { DoctorModel } from "@/types/doctor.type"; -import { GenderEnums } from "@/enums/gender"; - -import maleImg from "@/assets/fallback-images/portrait-3d-male-doctor.jpg"; -import femaleImg from "@/assets/fallback-images/portrait-3d-female-doctor.jpg"; import styles from "./item.module.css"; -import { MingcuteLocationFill } from "@/icons/MingcuteLocationFill"; -import { MingcuteArrowLeftLine } from "@/icons/MingcuteArrowLeftLine"; + type Props = { item: DoctorModel; @@ -22,16 +19,9 @@ const ItemComponent = ({ item }: Props): ReactElement => { return (
  • - {item.name} + + +

    {item.name}

    {item.brief}

    @@ -62,7 +52,7 @@ const ItemComponent = ({ item }: Props): ReactElement => { دریافت نوبت -
  • + ); }; diff --git a/src/app/doctors/[[...slug]]/components/item/item.module.css b/src/app/doctors/[[...slug]]/components/item/item.module.css index 94caa29..d2c9d16 100644 --- a/src/app/doctors/[[...slug]]/components/item/item.module.css +++ b/src/app/doctors/[[...slug]]/components/item/item.module.css @@ -16,13 +16,6 @@ gap: 0.8rem; } - .image { - border-radius: 0.7rem; - border: 0.2rem solid var(--color-border); - - object-fit: cover; - } - .name { font-size: var(--fz-400); } diff --git a/src/components/common/doctor-image/doctor-image.component.tsx b/src/components/common/doctor-image/doctor-image.component.tsx new file mode 100644 index 0000000..d588518 --- /dev/null +++ b/src/components/common/doctor-image/doctor-image.component.tsx @@ -0,0 +1,34 @@ +import { ReactElement } from "react"; + +import Image from "next/image"; + +import { GenderEnums } from "@/enums/gender"; +import { Gender } from "@/types/doctor.type"; + +import femaleImg from "@/assets/fallback-images/portrait-3d-female-doctor.jpg"; +import maleImg from "@/assets/fallback-images/portrait-3d-male-doctor.jpg"; + +import styles from "./doctor-image.module.css"; + +type Props = { + name: string; + image: string; + gender: Gender; +}; + +const DoctorImageComponent: React.FC = ({ name, image, gender }): ReactElement => { + return ( + {name} + ) +} + +export default DoctorImageComponent; diff --git a/src/components/common/doctor-image/doctor-image.module.css b/src/components/common/doctor-image/doctor-image.module.css new file mode 100644 index 0000000..cff69bd --- /dev/null +++ b/src/components/common/doctor-image/doctor-image.module.css @@ -0,0 +1,6 @@ +.image { + border-radius: 0.7rem; + border: 0.2rem solid var(--color-border); + + object-fit: cover; +} From 695c5a9c1d68b2479e1963146716b1c4a53bbca0 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 18:12:50 +0330 Subject: [PATCH 14/45] [UPDATE] fixed url --- src/app/doctors/[[...slug]]/components/list/list.component.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/doctors/[[...slug]]/components/list/list.component.tsx b/src/app/doctors/[[...slug]]/components/list/list.component.tsx index 477cd9f..6d38c3f 100644 --- a/src/app/doctors/[[...slug]]/components/list/list.component.tsx +++ b/src/app/doctors/[[...slug]]/components/list/list.component.tsx @@ -19,7 +19,7 @@ const ListComponent = ({ return (
      {doctors.map((item: DoctorModel) => ( - + ))} From cbf8683c9f113b2036e6064d5f42a9fb42d61b09 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 18:14:19 +0330 Subject: [PATCH 15/45] [ADD] doctor page + add doctor image inside page --- .../components/info/info-card.component.tsx | 20 ++++++++++ .../components/info/info-card.module.css | 9 +++++ src/app/doctor/[[...slug]]/page.module.css | 20 ++++++++++ src/app/doctor/[[...slug]]/page.tsx | 39 +++++++++++++++++-- 4 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 src/app/doctor/[[...slug]]/components/info/info-card.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/info/info-card.module.css create mode 100644 src/app/doctor/[[...slug]]/page.module.css diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx new file mode 100644 index 0000000..fcad8ff --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx @@ -0,0 +1,20 @@ +import { ReactElement } from "react"; + +import DoctorImageComponent from "@/components/common/doctor-image/doctor-image.component"; + +import { DoctorModel } from "@/types/doctor.type"; + +import styles from "./info-card.module.css"; + + +type Props = { doctorDetails: DoctorModel }; + +const InfoCardComponent: React.FC = ({ doctorDetails }): ReactElement => { + return ( +
      + +
      + ) +} + +export default InfoCardComponent; diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.module.css b/src/app/doctor/[[...slug]]/components/info/info-card.module.css new file mode 100644 index 0000000..31989a9 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/info/info-card.module.css @@ -0,0 +1,9 @@ +.info { + padding: 1rem; + height: auto; + + background-color: var(--color-surface-700); + box-shadow: var(--shadow-400); + + border-radius: var(--border-radius); +} diff --git a/src/app/doctor/[[...slug]]/page.module.css b/src/app/doctor/[[...slug]]/page.module.css new file mode 100644 index 0000000..3f98b35 --- /dev/null +++ b/src/app/doctor/[[...slug]]/page.module.css @@ -0,0 +1,20 @@ +.page { + display: grid; + grid-template-areas: "detaile reserve"; + grid-template-columns: 2fr 1fr; + align-items: start; + gap: 1rem; + + margin-block: 2rem; + + .detaile { + grid-area: detaile; + } + + .reserve { + grid-area: reserve; + + display: grid; + gap: 1rem; + } +} diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx index bf42993..de28585 100644 --- a/src/app/doctor/[[...slug]]/page.tsx +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -2,10 +2,13 @@ import { ReactElement } from "react"; import { notFound } from "next/navigation"; +import InfoCardComponent from "./components/info/info-card.component"; + import { DoctorModel } from "@/types/doctor.type"; import { doctorsData } from "@/models/doctors"; +import styles from "./page.module.css"; type Props = { params: { @@ -23,13 +26,41 @@ const DoctorPage: React.FC = ({ params }): ReactElement => { } else return notFound(); - const doctorDetails = doctorsData.filter((doctor: DoctorModel) => (slug === doctor.slug)) + const doctorDetails = doctorsData.filter((doctor: DoctorModel) => (slug === doctor.slug))[0] + + if (!doctorDetails) return notFound() - if (doctorDetails.length === 0) return notFound() - return ( -
      {slug}
      +
      +
      +
      + +
      + +
      + about +
      + +
      + review +
      +
      + +
      +
      + visit section +
      + +
      + nobat section +
      + +
      + address +
      +
      +
      ) } From 4a708e48ee59b4bb633328a320002416f4fcd900 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 20:34:01 +0330 Subject: [PATCH 16/45] [ADD] doctor info card --- .../components/info/info-card.component.tsx | 40 ++++++++- .../components/info/info-card.module.css | 85 ++++++++++++++++++- src/app/globals.css | 3 + 3 files changed, 125 insertions(+), 3 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx index fcad8ff..f143880 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx +++ b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx @@ -11,8 +11,44 @@ type Props = { doctorDetails: DoctorModel }; const InfoCardComponent: React.FC = ({ doctorDetails }): ReactElement => { return ( -
      - +
      + +
      +
        +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      + + 10K +
      + +
      + + +
      +

      {doctorDetails.name}

      + شماره نظام پزشکی: 165017 +
      +
      + +
      + + {doctorDetails.brief} + + + + {doctorDetails.averageRating} از 5 +  رضایت + ({doctorDetails.totalVotes} نظر) + +
      ) } diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.module.css b/src/app/doctor/[[...slug]]/components/info/info-card.module.css index 31989a9..de67c28 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.module.css +++ b/src/app/doctor/[[...slug]]/components/info/info-card.module.css @@ -1,4 +1,4 @@ -.info { +.card { padding: 1rem; height: auto; @@ -6,4 +6,87 @@ box-shadow: var(--shadow-400); border-radius: var(--border-radius); + + .action { + display: flex; + justify-content: space-between; + align-items: center; + + ul { + display: flex; + justify-content: start; + align-items: center; + gap: 0.5rem; + + li button { + background-color: var(--color-surface-300); + font-size: var(--fz-100); + + border: none; + border-radius: var(--border-radius); + + padding: 0.5rem; + } + } + + margin-bottom: 1rem; + } + + .info { + display: flex; + align-items: center; + justify-content: start; + gap: 0.8rem; + + padding: 1rem; + + background-color: var(--color-surface-400); + border-radius: var(--border-radius); + + h1 { + font-size: var(--fz-500); + } + + span { + font-size: var(--fz-100); + display: inline-block; + margin-top: 1rem; + } + } + + .brief_container { + text-align: center; + margin-block: 1rem; + + .brief { + font-size: var(--fz-200); + font-weight: normal; + + color: var(--color-text-700); + + border: 1px solid var(--color-border); + border-radius: var(--border-radius); + + padding-inline: 0.5rem; + padding-block: 0.2rem; + } + + .rate { + display: block; + + font-size: var(--fz-200); + + margin-top: 2rem; + + .ave_rate { + background-color: var(--color-success-darker); + + color: var(--color-primary-fade); + + padding: 0.5rem; + + border-radius: var(--border-radius); + } + } + } } diff --git a/src/app/globals.css b/src/app/globals.css index 9ed6d41..20de04a 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -31,6 +31,9 @@ --color-danger-darker: hsl(10deg 80% 44%); --color-danger-opposite: var(--color-gray-99); + --color-success: hsl(110, 100%, 50%); + --color-success-darker: hsl(110, 88%, 34%); + --color-star: hsl(50deg 100% 50%); --color-border: var(--color-gray-80); From e9bb336ed44077f9796a0758b2563f34d88f29dd Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 20:53:49 +0330 Subject: [PATCH 17/45] [UPDATE] create basic version component of doctor page --- .../components/about/about.component.tsx | 18 +++++ .../components/about/about.module.css | 0 .../counsulation/counsulation.component.tsx | 15 ++++ .../counsulation/counsulation.module.css | 0 .../components/info/info-card.component.tsx | 69 ++++++++++--------- .../components/info/info-card.module.css | 8 --- .../location/location.component.tsx | 18 +++++ .../components/location/location.module.css | 0 .../components/reserve/reserve.component.tsx | 18 +++++ .../components/reserve/reserve.module.css | 0 .../components/reviews/reviews.component.tsx | 18 +++++ .../components/reviews/reviews.module.css | 0 src/app/doctor/[[...slug]]/page.module.css | 3 + src/app/doctor/[[...slug]]/page.tsx | 19 +++-- 14 files changed, 138 insertions(+), 48 deletions(-) create mode 100644 src/app/doctor/[[...slug]]/components/about/about.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/about/about.module.css create mode 100644 src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css create mode 100644 src/app/doctor/[[...slug]]/components/location/location.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/location/location.module.css create mode 100644 src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/reserve/reserve.module.css create mode 100644 src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/reviews/reviews.module.css diff --git a/src/app/doctor/[[...slug]]/components/about/about.component.tsx b/src/app/doctor/[[...slug]]/components/about/about.component.tsx new file mode 100644 index 0000000..7ef4cb8 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/about/about.component.tsx @@ -0,0 +1,18 @@ + +import { ReactNode } from "react"; + +import CardComponent from "@/components/card/card.component"; + +import styles from "./about.module.css"; + +const AboutComponent = (): ReactNode => { + return ( + +
      + AboutComponent +
      +
      + ) +} + +export default AboutComponent; diff --git a/src/app/doctor/[[...slug]]/components/about/about.module.css b/src/app/doctor/[[...slug]]/components/about/about.module.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx new file mode 100644 index 0000000..9ecaaf2 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx @@ -0,0 +1,15 @@ +import { ReactElement } from "react"; + +import CardComponent from "@/components/card/card.component"; + +import styles from "./counsulation.module.css" + +const CounsulationComponent = (): ReactElement => { + return ( + +
      CounsulationComponent
      +
      + ) +} + +export default CounsulationComponent; diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx index f143880..42021d6 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx +++ b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx @@ -1,6 +1,7 @@ import { ReactElement } from "react"; import DoctorImageComponent from "@/components/common/doctor-image/doctor-image.component"; +import CardComponent from "@/components/card/card.component"; import { DoctorModel } from "@/types/doctor.type"; @@ -11,45 +12,47 @@ type Props = { doctorDetails: DoctorModel }; const InfoCardComponent: React.FC = ({ doctorDetails }): ReactElement => { return ( -
      - -
      -
        -
      • - -
      • -
      • - -
      • -
      • - -
      • -
      - - 10K -
      + +
      + +
      +
        +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      + + 10K +
      -
      - +
      + -
      -

      {doctorDetails.name}

      - شماره نظام پزشکی: 165017 +
      +

      {doctorDetails.name}

      + شماره نظام پزشکی: 165017 +
      -
      -
      - - {doctorDetails.brief} - +
      + + {doctorDetails.brief} + - - {doctorDetails.averageRating} از 5 -  رضایت - ({doctorDetails.totalVotes} نظر) - + + {doctorDetails.averageRating} از 5 +  رضایت + ({doctorDetails.totalVotes} نظر) + +
      -
      + ) } diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.module.css b/src/app/doctor/[[...slug]]/components/info/info-card.module.css index de67c28..82f6a22 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.module.css +++ b/src/app/doctor/[[...slug]]/components/info/info-card.module.css @@ -1,12 +1,4 @@ .card { - padding: 1rem; - height: auto; - - background-color: var(--color-surface-700); - box-shadow: var(--shadow-400); - - border-radius: var(--border-radius); - .action { display: flex; justify-content: space-between; diff --git a/src/app/doctor/[[...slug]]/components/location/location.component.tsx b/src/app/doctor/[[...slug]]/components/location/location.component.tsx new file mode 100644 index 0000000..bf842b8 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/location/location.component.tsx @@ -0,0 +1,18 @@ + +import { ReactNode } from "react"; + +import CardComponent from "@/components/card/card.component"; + +import styles from "./location.module.css"; + +const LocationComponent = (): ReactNode => { + return ( + +
      + LocationComponent +
      +
      + ) +} + +export default LocationComponent; diff --git a/src/app/doctor/[[...slug]]/components/location/location.module.css b/src/app/doctor/[[...slug]]/components/location/location.module.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx b/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx new file mode 100644 index 0000000..33dc241 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx @@ -0,0 +1,18 @@ + +import { ReactNode } from "react"; + +import CardComponent from "@/components/card/card.component"; + +import styles from "./reserve.module.css"; + +const ReserveComponent = (): ReactNode => { + return ( + +
      + ReserveComponent +
      +
      + ) +} + +export default ReserveComponent; diff --git a/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css b/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx new file mode 100644 index 0000000..77a6c3c --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -0,0 +1,18 @@ + +import { ReactNode } from "react"; + +import CardComponent from "@/components/card/card.component"; + +import styles from "./reviews.module.css"; + +const ReviewsComponent = (): ReactNode => { + return ( + +
      + ReviewsComponent +
      +
      + ) +} + +export default ReviewsComponent; diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/doctor/[[...slug]]/page.module.css b/src/app/doctor/[[...slug]]/page.module.css index 3f98b35..e9914e8 100644 --- a/src/app/doctor/[[...slug]]/page.module.css +++ b/src/app/doctor/[[...slug]]/page.module.css @@ -9,6 +9,9 @@ .detaile { grid-area: detaile; + + display: grid; + gap: 1rem; } .reserve { diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx index de28585..6e94080 100644 --- a/src/app/doctor/[[...slug]]/page.tsx +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -3,6 +3,11 @@ import { ReactElement } from "react"; import { notFound } from "next/navigation"; import InfoCardComponent from "./components/info/info-card.component"; +import AboutComponent from "./components/about/about.component"; +import ReserveComponent from "./components/reserve/reserve.component"; +import LocationComponent from "./components/location/location.component"; +import ReviewsComponent from "./components/reviews/reviews.component"; +import CounsulationComponent from "./components/counsulation/counsulation.component"; import { DoctorModel } from "@/types/doctor.type"; @@ -39,25 +44,25 @@ const DoctorPage: React.FC = ({ params }): ReactElement => {
      - about +
      - review +
      -
      - visit section +
      +
      -
      - nobat section +
      +
      - address +
      From 1caac5e57dc4d62824e30ef09ee8d2a5fbda646c Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 21:27:24 +0330 Subject: [PATCH 18/45] [UPDATE] card component now get custom class in props --- src/components/card/card.component.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/components/card/card.component.tsx b/src/components/card/card.component.tsx index 8df8f0b..9113b0d 100644 --- a/src/components/card/card.component.tsx +++ b/src/components/card/card.component.tsx @@ -1,11 +1,14 @@ import { PropsWithChildren, ReactElement } from "react"; import styles from "@/components/card/card.module.css"; +import clsx from "clsx"; -type Props = PropsWithChildren; +type Props = PropsWithChildren & { + customStyle?: string; +}; -const CardComponent = ({ children }: Props): ReactElement => { - return
      {children}
      ; +const CardComponent = ({ children, customStyle }: Props): ReactElement => { + return
      {children}
      ; }; export default CardComponent; From fd6074473349d1e5fb8eb36d2ad7de472b3cdfc2 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 21:41:54 +0330 Subject: [PATCH 19/45] [ADD] online counsulation component --- .../counsulation/counsulation.component.tsx | 38 ++++++++++- .../counsulation/counsulation.module.css | 66 +++++++++++++++++++ 2 files changed, 102 insertions(+), 2 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx index 9ecaaf2..f6b6009 100644 --- a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx +++ b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx @@ -3,11 +3,45 @@ import { ReactElement } from "react"; import CardComponent from "@/components/card/card.component"; import styles from "./counsulation.module.css" +import { MingcuteArrowLeftLine } from "@/icons/MingcuteArrowLeftLine"; + +const price = 190000; const CounsulationComponent = (): ReactElement => { return ( - -
      CounsulationComponent
      + +
      +
      + همین الان آنلاین ویزیت شوید + {price.toLocaleString()} تومان +
      + +
      +
        +
      • ویزیت آنلاین در پیام رسان:
      • +
      • تضمین بازپرداخت مبلغ ویزیت در صورت نارضایتی
      • +
      • امکان برقراری تماس با این پزشک وجود دارد.
      • +
      • + تا +   + ۳ روز +   + می‌توانید هر سوالی دارید از پزشک بپرسید +
      • +
      • میانگین زمان انتظار تا ویزیت:
      • +
      +
      + + +
      ) } diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css index e69de29..489d907 100644 --- a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css +++ b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css @@ -0,0 +1,66 @@ +.card { + padding: 0; +} + +.container { + display: grid; + gap: 0.5rem; + + .price { + display: flex; + justify-content: space-between; + align-items: center; + + font-size: var(--fz-200); + font-weight: 600; + + border-bottom: 1px solid var(--color-gray-90); + + padding-bottom: 0.7rem; + padding: 1rem; + } + + .note { + padding: 1rem; + + ul { + border-right: 2px dotted var(--color-gray-80); + + padding-inline-start: 0.8rem; + + font-size: var(--fz-200); + line-height: 1.5rem; + + li span{ + font-weight: 600; + font-size: var(--fz-300); + } + } + } + + button { + display: flex; + justify-content: space-between; + align-items: center; + + background-color: var(--color-primary); + color: var(--color-primary-opposite); + + border-radius: var(--border-radius); + border: none; + + padding-block: 0.8rem; + padding-inline: 1rem; + + margin: 1rem; + + cursor: pointer; + + transition: 0.2s ease-in-out; + transition-property: background-color, color; + + &:hover { + background-color: var(--color-primary-darker); + } + } +} From 59e9c344f292919bed06fbd06f987d2c39ca8a76 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 21:47:28 +0330 Subject: [PATCH 20/45] [ADD] reserve component --- .../components/reserve/reserve.component.tsx | 20 ++++++- .../components/reserve/reserve.module.css | 57 +++++++++++++++++++ 2 files changed, 74 insertions(+), 3 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx b/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx index 33dc241..bf5d23f 100644 --- a/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx @@ -2,14 +2,28 @@ import { ReactNode } from "react"; import CardComponent from "@/components/card/card.component"; +import { MingcuteArrowLeftLine } from "@/icons/MingcuteArrowLeftLine"; import styles from "./reserve.module.css"; const ReserveComponent = (): ReactNode => { return ( - -
      - ReserveComponent + +
      +
      + نوبت اینترنتی و مراجعه حضوری +
      + +
      +
        +
      • امکان دریافت زودترین نوبت
      • +
      +
      + +
      ) diff --git a/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css b/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css index e69de29..92802ea 100644 --- a/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css +++ b/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css @@ -0,0 +1,57 @@ +.card { + padding: 0; +} + +.container { + display: grid; + gap: 0.5rem; + + .price { + font-size: var(--fz-200); + font-weight: 600; + + border-bottom: 1px solid var(--color-gray-90); + + padding-bottom: 0.7rem; + padding: 1rem; + } + + .note { + padding: 1rem; + + ul { + border-right: 2px dotted var(--color-gray-80); + + padding-inline-start: 0.8rem; + + font-size: var(--fz-200); + line-height: 1.5rem; + } + } + + button { + display: flex; + justify-content: space-between; + align-items: center; + + background-color: var(--color-primary); + color: var(--color-primary-opposite); + + border-radius: var(--border-radius); + border: none; + + padding-block: 0.8rem; + padding-inline: 1rem; + + margin: 1rem; + + cursor: pointer; + + transition: 0.2s ease-in-out; + transition-property: background-color, color; + + &:hover { + background-color: var(--color-primary-darker); + } + } +} From 39e761f1bb4f7ab4611a8cd5f0fc9fffcf024d01 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 22:30:29 +0330 Subject: [PATCH 21/45] [ADD] contact component --- .../components/contact/contact.component.tsx | 57 ++++++++++++++ .../components/contact/contact.module.css | 74 +++++++++++++++++++ .../location/location.component.tsx | 18 ----- .../components/location/location.module.css | 0 src/app/doctor/[[...slug]]/page.tsx | 6 +- 5 files changed, 134 insertions(+), 21 deletions(-) create mode 100644 src/app/doctor/[[...slug]]/components/contact/contact.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/contact/contact.module.css delete mode 100644 src/app/doctor/[[...slug]]/components/location/location.component.tsx delete mode 100644 src/app/doctor/[[...slug]]/components/location/location.module.css diff --git a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx new file mode 100644 index 0000000..07296d8 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx @@ -0,0 +1,57 @@ + +import { ReactNode } from "react"; + +import CardComponent from "@/components/card/card.component"; + +import styles from "./contact.module.css"; + +const ContactComponent = (): ReactNode => { + return ( +
      +
      +

      آدرس و تلفن تماس

      + + گزارش تلفن و آدرس صحیح + +
      + + +
      + مطب دکتر معصومه دلجو +
      + تهران - + تهران، وحدت اسلامی، رازی +
      + +
      +
        +
      • + +
      • + +
      • + +
      • + +
      • + +
      • +
      +
      +
      +
      +
      + ) +} + +export default ContactComponent; diff --git a/src/app/doctor/[[...slug]]/components/contact/contact.module.css b/src/app/doctor/[[...slug]]/components/contact/contact.module.css new file mode 100644 index 0000000..1d97ad5 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/contact/contact.module.css @@ -0,0 +1,74 @@ +.container { + display: grid; + gap: 1rem; + + .title { + display: flex; + justify-content: space-between; + align-items: center; + gap: 0.5rem; + + h2 { + font-size: var(--fz-300); + } + + span { + font-size: var(--fz-100); + + color: var(--color-primary-darker); + } + } + + .contact { + background-color: var(--color-surface-400); + border-radius: var(--border-radius); + + padding: 1rem; + + strong { + display: inline-block; + font-size: var(--fz-300); + margin-bottom: 0.3rem; + } + + address { + font-style: normal; + font-size: var(--fz-200); + + span:first-of-type { + font-weight: bold; + } + } + + .action_btn { + ul li { + margin-top: 1rem; + + font-size: var(--fz-200); + font-weight: 600; + } + + button { + width: 100%; + + background-color: inherit; + color: var(--color-primary-darker); + + border-radius: 0.4rem; + border: 1px solid var(--color-primary); + + padding-block: 0.8rem; + padding-inline: 1rem; + + cursor: pointer; + + transition: 0.2s ease-in-out; + transition-property: background-color, color; + + &:hover { + background-color: var(--color-primary-fade); + } + } + } + } +} diff --git a/src/app/doctor/[[...slug]]/components/location/location.component.tsx b/src/app/doctor/[[...slug]]/components/location/location.component.tsx deleted file mode 100644 index bf842b8..0000000 --- a/src/app/doctor/[[...slug]]/components/location/location.component.tsx +++ /dev/null @@ -1,18 +0,0 @@ - -import { ReactNode } from "react"; - -import CardComponent from "@/components/card/card.component"; - -import styles from "./location.module.css"; - -const LocationComponent = (): ReactNode => { - return ( - -
      - LocationComponent -
      -
      - ) -} - -export default LocationComponent; diff --git a/src/app/doctor/[[...slug]]/components/location/location.module.css b/src/app/doctor/[[...slug]]/components/location/location.module.css deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx index 6e94080..3557813 100644 --- a/src/app/doctor/[[...slug]]/page.tsx +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -5,16 +5,16 @@ import { notFound } from "next/navigation"; import InfoCardComponent from "./components/info/info-card.component"; import AboutComponent from "./components/about/about.component"; import ReserveComponent from "./components/reserve/reserve.component"; -import LocationComponent from "./components/location/location.component"; +import ContactComponent from "./components/contact/contact.component"; import ReviewsComponent from "./components/reviews/reviews.component"; import CounsulationComponent from "./components/counsulation/counsulation.component"; import { DoctorModel } from "@/types/doctor.type"; - import { doctorsData } from "@/models/doctors"; import styles from "./page.module.css"; + type Props = { params: { slug: string; @@ -62,7 +62,7 @@ const DoctorPage: React.FC = ({ params }): ReactElement => {
      - +
      From fcc89718fc61d8d13d9ac98fa4cbeaeecfef212a Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 28 Jan 2025 22:33:42 +0330 Subject: [PATCH 22/45] [UPDATE] contact tel link --- .../[[...slug]]/components/contact/contact.component.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx index 07296d8..c369c95 100644 --- a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx +++ b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx @@ -34,9 +34,11 @@ const ContactComponent = (): ReactNode => {
    • - + + +
    • From 0a96da4f48fbc41c5131bee30d831018c42b2d05 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Wed, 29 Jan 2025 11:16:22 +0330 Subject: [PATCH 23/45] [UPDATE] convert en price to persian number --- .../components/counsulation/counsulation.component.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx index f6b6009..e053541 100644 --- a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx +++ b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx @@ -13,7 +13,7 @@ const CounsulationComponent = (): ReactElement => {
      همین الان آنلاین ویزیت شوید - {price.toLocaleString()} تومان + {price.toLocaleString("fa-IR")} تومان
      From 6f996917c104dc59759ca72dc19b208b9a6a9290 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Wed, 29 Jan 2025 11:37:18 +0330 Subject: [PATCH 24/45] [UPDATE] change cursor to pointer for report button --- .../doctor/[[...slug]]/components/contact/contact.module.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/doctor/[[...slug]]/components/contact/contact.module.css b/src/app/doctor/[[...slug]]/components/contact/contact.module.css index 1d97ad5..d96b74f 100644 --- a/src/app/doctor/[[...slug]]/components/contact/contact.module.css +++ b/src/app/doctor/[[...slug]]/components/contact/contact.module.css @@ -12,10 +12,12 @@ font-size: var(--fz-300); } - span { + .report { font-size: var(--fz-100); color: var(--color-primary-darker); + + cursor: pointer; } } From c1195dfa680693ef1733917b0a3901971c00cb72 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Wed, 29 Jan 2025 12:39:05 +0330 Subject: [PATCH 25/45] [UPDATE] add icons to doctor single page --- .../components/contact/contact.component.tsx | 20 ++++++++++--- .../components/contact/contact.module.css | 20 +++++++++++++ .../counsulation/counsulation.component.tsx | 9 ++++-- .../counsulation/counsulation.module.css | 14 +++++++++- .../components/info/info-card.component.tsx | 26 ++++++++++++++--- .../components/info/info-card.module.css | 28 ++++++++++++++++--- .../components/reserve/reserve.component.tsx | 5 +++- .../components/reserve/reserve.module.css | 12 +++++++- src/icons/MingcuteAwardLine.tsx | 8 ++++++ src/icons/MingcuteBookmarkLine.tsx | 8 ++++++ src/icons/MingcuteCalendar2Line.tsx | 8 ++++++ src/icons/MingcuteCommentLine.tsx | 8 ++++++ src/icons/MingcuteEye2Line.tsx | 8 ++++++ src/icons/MingcutePencilLine.tsx | 8 ++++++ src/icons/MingcutePhoneLine.tsx | 8 ++++++ src/icons/MingcuteShare2Line.tsx | 8 ++++++ src/icons/MingcuteWalkFill.tsx | 18 ++++++++++++ src/icons/OnlineTowCiecleFill.tsx | 20 +++++++++++++ 18 files changed, 219 insertions(+), 17 deletions(-) create mode 100644 src/icons/MingcuteAwardLine.tsx create mode 100644 src/icons/MingcuteBookmarkLine.tsx create mode 100644 src/icons/MingcuteCalendar2Line.tsx create mode 100644 src/icons/MingcuteCommentLine.tsx create mode 100644 src/icons/MingcuteEye2Line.tsx create mode 100644 src/icons/MingcutePencilLine.tsx create mode 100644 src/icons/MingcutePhoneLine.tsx create mode 100644 src/icons/MingcuteShare2Line.tsx create mode 100644 src/icons/MingcuteWalkFill.tsx create mode 100644 src/icons/OnlineTowCiecleFill.tsx diff --git a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx index c369c95..2d553ff 100644 --- a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx +++ b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx @@ -3,6 +3,11 @@ import { ReactNode } from "react"; import CardComponent from "@/components/card/card.component"; +import MingcutePencilLine from "@/icons/MingcutePencilLine"; +import MingcuteCalendar2Line from "@/icons/MingcuteCalendar2Line"; +import MingcutePhoneLine from "@/icons/MingcutePhoneLine"; +import MingcuteLocationLine from "@/icons/MingcuteLocationLine"; + import styles from "./contact.module.css"; const ContactComponent = (): ReactNode => { @@ -10,9 +15,13 @@ const ContactComponent = (): ReactNode => {

      آدرس و تلفن تماس

      - - گزارش تلفن و آدرس صحیح - + +
      + + + گزارش تلفن و آدرس صحیح + +
      @@ -27,6 +36,7 @@ const ContactComponent = (): ReactNode => {
      • +
      • - +
      • - +
      - 10K + + {view.toLocaleString('fa-IR')}K + +
      diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.module.css b/src/app/doctor/[[...slug]]/components/info/info-card.module.css index 82f6a22..c878f06 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.module.css +++ b/src/app/doctor/[[...slug]]/components/info/info-card.module.css @@ -4,24 +4,44 @@ justify-content: space-between; align-items: center; + margin-bottom: 1rem; + ul { display: flex; justify-content: start; align-items: center; gap: 0.5rem; + + font-size: var(--fz-300); li button { - background-color: var(--color-surface-300); - font-size: var(--fz-100); + display: flex; + justify-content: start; + align-items: center; + gap: 0.3rem; + + background-color: inherit; + border: none; - border-radius: var(--border-radius); padding: 0.5rem; + + cursor: pointer; } } - margin-bottom: 1rem; + .review { + display: flex; + justify-content: space-end; + align-items: center; + gap: 0.2rem; + + svg { + width: 1.3rem; + height: 1.3rem; + } + } } .info { diff --git a/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx b/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx index bf5d23f..4cf6385 100644 --- a/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx @@ -2,7 +2,9 @@ import { ReactNode } from "react"; import CardComponent from "@/components/card/card.component"; + import { MingcuteArrowLeftLine } from "@/icons/MingcuteArrowLeftLine"; +import MingcuteWalkFill from "@/icons/MingcuteWalkFill"; import styles from "./reserve.module.css"; @@ -10,7 +12,8 @@ const ReserveComponent = (): ReactNode => { return (
      -
      +
      + نوبت اینترنتی و مراجعه حضوری
      diff --git a/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css b/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css index 92802ea..dab66c8 100644 --- a/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css +++ b/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css @@ -6,7 +6,12 @@ display: grid; gap: 0.5rem; - .price { + .title { + display: flex; + justify-content: start; + align-items: center; + gap: 0.3rem; + font-size: var(--fz-200); font-weight: 600; @@ -14,6 +19,11 @@ padding-bottom: 0.7rem; padding: 1rem; + + svg { + width: 1.2rem; + height: 1.2rem; + } } .note { diff --git a/src/icons/MingcuteAwardLine.tsx b/src/icons/MingcuteAwardLine.tsx new file mode 100644 index 0000000..08fa821 --- /dev/null +++ b/src/icons/MingcuteAwardLine.tsx @@ -0,0 +1,8 @@ +import React, { SVGProps } from 'react' + +export function MingcuteAwardLine(props: SVGProps) { + return ( + + ) +} +export default MingcuteAwardLine \ No newline at end of file diff --git a/src/icons/MingcuteBookmarkLine.tsx b/src/icons/MingcuteBookmarkLine.tsx new file mode 100644 index 0000000..a2e3592 --- /dev/null +++ b/src/icons/MingcuteBookmarkLine.tsx @@ -0,0 +1,8 @@ +import React, { SVGProps } from 'react' + +export function MingcuteBookmarkLine(props: SVGProps) { + return ( + + ) +} +export default MingcuteBookmarkLine \ No newline at end of file diff --git a/src/icons/MingcuteCalendar2Line.tsx b/src/icons/MingcuteCalendar2Line.tsx new file mode 100644 index 0000000..13da4bd --- /dev/null +++ b/src/icons/MingcuteCalendar2Line.tsx @@ -0,0 +1,8 @@ +import React, { SVGProps } from 'react' + +export function MingcuteCalendar2Line(props: SVGProps) { + return ( + + ) +} +export default MingcuteCalendar2Line \ No newline at end of file diff --git a/src/icons/MingcuteCommentLine.tsx b/src/icons/MingcuteCommentLine.tsx new file mode 100644 index 0000000..63bf32a --- /dev/null +++ b/src/icons/MingcuteCommentLine.tsx @@ -0,0 +1,8 @@ +import React, { SVGProps } from 'react' + +export function MingcuteCommentLine(props: SVGProps) { + return ( + + ) +} +export default MingcuteCommentLine \ No newline at end of file diff --git a/src/icons/MingcuteEye2Line.tsx b/src/icons/MingcuteEye2Line.tsx new file mode 100644 index 0000000..877ddde --- /dev/null +++ b/src/icons/MingcuteEye2Line.tsx @@ -0,0 +1,8 @@ +import React, { SVGProps } from 'react' + +export function MingcuteEye2Line(props: SVGProps) { + return ( + + ) +} +export default MingcuteEye2Line \ No newline at end of file diff --git a/src/icons/MingcutePencilLine.tsx b/src/icons/MingcutePencilLine.tsx new file mode 100644 index 0000000..82bb5ba --- /dev/null +++ b/src/icons/MingcutePencilLine.tsx @@ -0,0 +1,8 @@ +import React, { SVGProps } from 'react' + +export function MingcutePencilLine(props: SVGProps) { + return ( + + ) +} +export default MingcutePencilLine \ No newline at end of file diff --git a/src/icons/MingcutePhoneLine.tsx b/src/icons/MingcutePhoneLine.tsx new file mode 100644 index 0000000..43e1652 --- /dev/null +++ b/src/icons/MingcutePhoneLine.tsx @@ -0,0 +1,8 @@ +import React, { SVGProps } from 'react' + +export function MingcutePhoneLine(props: SVGProps) { + return ( + + ) +} +export default MingcutePhoneLine \ No newline at end of file diff --git a/src/icons/MingcuteShare2Line.tsx b/src/icons/MingcuteShare2Line.tsx new file mode 100644 index 0000000..b31caa2 --- /dev/null +++ b/src/icons/MingcuteShare2Line.tsx @@ -0,0 +1,8 @@ +import React, { SVGProps } from 'react' + +export function MingcuteShare2Line(props: SVGProps) { + return ( + + ) +} +export default MingcuteShare2Line \ No newline at end of file diff --git a/src/icons/MingcuteWalkFill.tsx b/src/icons/MingcuteWalkFill.tsx new file mode 100644 index 0000000..a71f93c --- /dev/null +++ b/src/icons/MingcuteWalkFill.tsx @@ -0,0 +1,18 @@ +import React, { SVGProps } from 'react' + +export function MingcuteWalkFill(props: SVGProps) { + return ( + + + + + + + ) +} +export default MingcuteWalkFill \ No newline at end of file diff --git a/src/icons/OnlineTowCiecleFill.tsx b/src/icons/OnlineTowCiecleFill.tsx new file mode 100644 index 0000000..7209bd7 --- /dev/null +++ b/src/icons/OnlineTowCiecleFill.tsx @@ -0,0 +1,20 @@ +import React, { SVGProps } from 'react' + +export function OnlineTowCiecleFill(props: SVGProps) { + return ( + + + + + ) +} +export default OnlineTowCiecleFill; + From 1af36ed1793abe8149185c84da352f126b30aaa2 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Wed, 29 Jan 2025 12:39:36 +0330 Subject: [PATCH 26/45] [ADD] doctor activities card --- .../activities/activities.component.tsx | 43 +++++++++++++++++++ .../activities/activities.module.css | 40 +++++++++++++++++ src/app/doctor/[[...slug]]/page.tsx | 5 +++ 3 files changed, 88 insertions(+) create mode 100644 src/app/doctor/[[...slug]]/components/activities/activities.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/activities/activities.module.css diff --git a/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx b/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx new file mode 100644 index 0000000..c23536f --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx @@ -0,0 +1,43 @@ +import { ReactElement } from "react"; + +import CardComponent from "@/components/card/card.component"; + +import MingcuteCommentLine from "@/icons/MingcuteCommentLine"; +import MingcuteAwardLine from "@/icons/MingcuteAwardLine"; + +import styles from "./activities.module.css" + +const comment = 231; + +const ActivitiesComponent = (): ReactElement => { + return ( +
      +
      +

      فعالیت‌ها

      +
      + +
      +
        +
      • + + + {comment.toLocaleString('fa-IR')} +   + مشاوره فعال + +
      • + +
      • + + + پذیرش24 بیش از 2 سال و 11 ماه افتخار میزبانی از صفحه اختصاصی دکتر معصومه دلجو را داشته است. + +
      • +
      +
      +
      +
      + ) +} + +export default ActivitiesComponent; diff --git a/src/app/doctor/[[...slug]]/components/activities/activities.module.css b/src/app/doctor/[[...slug]]/components/activities/activities.module.css new file mode 100644 index 0000000..47091e6 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/activities/activities.module.css @@ -0,0 +1,40 @@ +.container { + display: grid; + gap: 1rem; + + .title { + h2 { + font-size: var(--fz-300); + } + } + + .activity { + ul li { + display: flex; + justify-content: start; + align-items: center; + gap: 0.5rem; + + background-color: var(--color-surface-400); + + font-size: var(--fz-200); + + border-radius: var(--border-radius); + + padding-inline: 1rem; + padding-block: 0.8rem; + + svg { + width: 1.4rem; + height: 1.4rem; + } + .consulation_count{ + font-weight: 600; + } + } + + ul li:not(:first-child) { + margin-top: 0.8rem; + } + } +} diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx index 3557813..c701d49 100644 --- a/src/app/doctor/[[...slug]]/page.tsx +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -8,6 +8,7 @@ import ReserveComponent from "./components/reserve/reserve.component"; import ContactComponent from "./components/contact/contact.component"; import ReviewsComponent from "./components/reviews/reviews.component"; import CounsulationComponent from "./components/counsulation/counsulation.component"; +import ActivitiesComponent from "./components/activities/activities.component"; import { DoctorModel } from "@/types/doctor.type"; import { doctorsData } from "@/models/doctors"; @@ -47,6 +48,10 @@ const DoctorPage: React.FC = ({ params }): ReactElement => {
      +
      + +
      +
      From 1879f52b8a85fe9edbd1637a778258a4ac9a53a9 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Wed, 29 Jan 2025 13:18:20 +0330 Subject: [PATCH 27/45] [ADD] doctor about card in single doctor page --- .../components/about/about.component.tsx | 67 +++++++++++++++++-- .../components/about/about.module.css | 26 +++++++ 2 files changed, 89 insertions(+), 4 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/about/about.component.tsx b/src/app/doctor/[[...slug]]/components/about/about.component.tsx index 7ef4cb8..75cd664 100644 --- a/src/app/doctor/[[...slug]]/components/about/about.component.tsx +++ b/src/app/doctor/[[...slug]]/components/about/about.component.tsx @@ -5,13 +5,72 @@ import CardComponent from "@/components/card/card.component"; import styles from "./about.module.css"; +const dangerousHtml = ` +
      +

      پزشک علیرضا یکی از متخصصان برجسته در زمینه پزشکی داخلی است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

      + +

      ویژگی‌های پزشک علیرضا:

      + +
        +
      • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
      • +
      • تحصیلات: دکترای پزشکی از دانشگاه تهران.
      • +
      • تخصص: درمان بیماری‌های مزمن و پیچیده.
      • +
      + +

      خدمات ارائه شده:

      +
        +
      1. معاینه و تشخیص بیماری‌ها
      2. +
      3. تجویز داروهای مناسب
      4. +
      5. برنامه‌ریزی درمانی شخصی‌سازی شده
      6. +
      + +

      آمار و ارقام

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      سالتعداد بیماران درمان شدهنرخ رضایت بیماران
      202115090%
      202220092%
      202325095%
      + +

      برای اطلاعات بیشتر می‌توانید با پزشک علیرضا تماس بگیرید و یا به وب‌سایت او مراجعه کنید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

      + +

      توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

      +
      + `; + const AboutComponent = (): ReactNode => { return ( - -
      - AboutComponent +
      +
      +

      درباره دکتر

      - + +
      + +
      ) } diff --git a/src/app/doctor/[[...slug]]/components/about/about.module.css b/src/app/doctor/[[...slug]]/components/about/about.module.css index e69de29..18977ed 100644 --- a/src/app/doctor/[[...slug]]/components/about/about.module.css +++ b/src/app/doctor/[[...slug]]/components/about/about.module.css @@ -0,0 +1,26 @@ +.container { + display: grid; + gap: 1rem; + + .title { + h2 { + font-size: var(--fz-300); + } + } + + .about div { + font-size: var(--fz-200); + + h2 { + font-size: var(--fz-300); + } + + > *:not(:first-child) { + margin-top: 1rem; + } + + ol { + margin-inline-start: 1.8rem; + } + } +} From 54805215d917b5d4f659b1fca5cc3bde8e00d85c Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Wed, 29 Jan 2025 13:27:32 +0330 Subject: [PATCH 28/45] [UPDATE] info avrage rate padding --- .../[[...slug]]/components/info/info-card.module.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.module.css b/src/app/doctor/[[...slug]]/components/info/info-card.module.css index c878f06..f513928 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.module.css +++ b/src/app/doctor/[[...slug]]/components/info/info-card.module.css @@ -11,7 +11,7 @@ justify-content: start; align-items: center; gap: 0.5rem; - + font-size: var(--fz-300); li button { @@ -22,7 +22,6 @@ background-color: inherit; - border: none; padding: 0.5rem; @@ -95,9 +94,10 @@ color: var(--color-primary-fade); - padding: 0.5rem; + padding-inline: 0.5rem; + padding-block: 0.1rem; - border-radius: var(--border-radius); + border-radius: 0.5rem; } } } From c9b95c4deaefcc7d1805fcb0b63827dab68c275d Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Wed, 29 Jan 2025 15:44:10 +0330 Subject: [PATCH 29/45] [ADD] reating progress bar --- .../reviews/rating-progress.component.tsx | 32 +++++++++++++ .../reviews/rating-progress.module.css | 45 +++++++++++++++++++ .../components/reviews/reviews.component.tsx | 25 ++++++++--- .../components/reviews/reviews.module.css | 29 ++++++++++++ 4 files changed, 126 insertions(+), 5 deletions(-) create mode 100644 src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/reviews/rating-progress.module.css diff --git a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx new file mode 100644 index 0000000..de922b7 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx @@ -0,0 +1,32 @@ +import { ReactElement } from "react"; + +import styles from "./rating-progress.module.css"; + +const RatingProgressComponent = (): ReactElement => { + const ratings = Array.from({ length: 3 }, () => Math.floor(Math.random() * 6)); + + return ( +
      + {ratings.map((rating, index) => { + return ( +
      + + برخورد مناسب پزشک + +
      +
      +
      +
      + {rating.toLocaleString('fa-IR')} +
      +
      + ); + })} +
      + ) +} + +export default RatingProgressComponent; diff --git a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.module.css b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.module.css new file mode 100644 index 0000000..1c785cb --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.module.css @@ -0,0 +1,45 @@ +.progress_container { + width: 100%; + + .progress_lable { + display: inline-block; + margin-top: 0.8rem; + } + + .progress_items { + display: flex; + align-items: center; + gap: 0.625rem; + + margin-top: 0.2rem; + + > div { + position: relative; + + width: 100%; + + height: 0.5rem; + + background-color: var(--color-gray-90); + + border-radius: 0.5rem; + + overflow: hidden; + + .progress_fill { + position: absolute; + top: 0; + right: 0; + + height: 100%; + + background-color: var(--color-success-darker); + + transition: all; + transition-duration: 500; + + border-radius: 0.5rem; + } + } + } +} diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index 77a6c3c..4e94c9f 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -1,17 +1,32 @@ - import { ReactNode } from "react"; import CardComponent from "@/components/card/card.component"; +import RatingProgressComponent from "./rating-progress.component"; import styles from "./reviews.module.css"; const ReviewsComponent = (): ReactNode => { return ( - -
      - ReviewsComponent +
      +
      +

      + نظرات در مورد دکتر +   + معصومه دلجو +

      - + +
      + {2} از 5 +  رضایت + ({264} نظر) +
      + +
      + +
      +
      +
      ) } diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css index e69de29..bccc98a 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css @@ -0,0 +1,29 @@ +.container { + display: grid; + gap: 1rem; + + .title { + h2 { + font-size: var(--fz-300); + } + } + + .rate { + display: block; + text-align: center; + margin-block: 1rem; + + font-size: var(--fz-200); + + .ave_rate { + background-color: var(--color-success-darker); + + color: var(--color-primary-fade); + + padding-inline: 0.5rem; + padding-block: 0.1rem; + + border-radius: 0.5rem; + } + } +} From 330ca8a0e2830ab211728be8dd87ad435083efc6 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Thu, 30 Jan 2025 15:33:53 +0330 Subject: [PATCH 30/45] [ADD] review items --- .../reviews/review-item.compoent.tsx | 71 +++++++++ .../components/reviews/review-item.module.css | 138 ++++++++++++++++++ .../components/reviews/reviews.component.tsx | 8 +- src/icons/MingcuteMore2Line.tsx | 8 + src/icons/MingcuteThumbUp2Line.tsx | 8 + 5 files changed, 232 insertions(+), 1 deletion(-) create mode 100644 src/app/doctor/[[...slug]]/components/reviews/review-item.compoent.tsx create mode 100644 src/app/doctor/[[...slug]]/components/reviews/review-item.module.css create mode 100644 src/icons/MingcuteMore2Line.tsx create mode 100644 src/icons/MingcuteThumbUp2Line.tsx diff --git a/src/app/doctor/[[...slug]]/components/reviews/review-item.compoent.tsx b/src/app/doctor/[[...slug]]/components/reviews/review-item.compoent.tsx new file mode 100644 index 0000000..c47d6c1 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/reviews/review-item.compoent.tsx @@ -0,0 +1,71 @@ +import { ReactElement } from "react"; + +import MingcuteThumbUp2Line from "@/icons/MingcuteThumbUp2Line"; +import MingcuteShare2Line from "@/icons/MingcuteShare2Line"; +import MingcuteMore2Line from "@/icons/MingcuteMore2Line"; + +import styles from "./review-item.module.css" + +const ReviewItemCompoent = (): ReactElement => { + return ( +
      + +
      +
      +
      + س +
      + +
      +
      + مسعود + ویزیت شده +
      +
      + + شش روز پیش + + +  |  + + + ویزیت آنلاین پذیرش24 + +
      +
      +
      + +
      + 5 + +
      + +
      +
      +
      + +

      + لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد. در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها و شرایط سخت تایپ به پایان رسد وزمان مورد نیاز شامل حروفچینی دستاوردهای اصلی و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد. + +

      + +
      + + + +
      +
      + ) +} + +export default ReviewItemCompoent; diff --git a/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css b/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css new file mode 100644 index 0000000..3f3fee8 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css @@ -0,0 +1,138 @@ +.container { + > *:not(:first-child) { + margin-top: 1.5rem; + } + + .user_info { + display: flex; + justify-content: space-between; + align-items: center; + gap: 0.5rem; + + .owner .image, + .rate_container .rate { + display: flex; + justify-content: center; + align-items: center; + + width: 2.2rem; + height: 2.2rem; + + font-size: var(--fz-300); + + color: var(--color-gray-99); + } + + .rate_container { + display: flex; + justify-content: end; + align-items: center; + gap: 0.5rem; + + .more_btn { + display: flex; + justify-content: center; + align-items: center; + + cursor: pointer; + + width: 2rem; + height: 2rem; + + svg { + width: 1.3rem; + height: 1.3rem; + } + } + } + + .owner { + display: flex; + justify-content: start; + align-items: center; + gap: 0.5rem; + + .image { + background-color: var(--color-danger-darker); + + border-radius: 50%; + } + + .name_container { + .name { + font-size: var(--fz-200); + + span:first-of-type { + font-weight: 600; + } + + span:last-of-type { + color: var(--color-text-700); + + margin-inline-start: 0.5rem; + + font-size: var(--fz-100); + + background-color: var(--color-surface-400); + + padding-block: 0.1rem; + padding-inline: 0.3rem; + + border-radius: var(--border-radius); + } + } + + .date{ + color: var(--color-text-700); + + font-size: var(--fz-100); + } + } + } + + .rate { + font-weight: 600; + + background-color: var(--color-primary-darker); + + border-top-left-radius: 0.35rem; + border-top-right-radius: 0.35rem; + border-bottom-left-radius: 0.35rem; + } + } + + .text { + font-size: var(--fz-200); + line-height: 1.7rem; + } + + .action_btn { + display: flex; + justify-content: end; + align-items: center; + gap: 0.5rem; + + > :not(:last-child) { + margin-inline-end: 1rem; + } + + button { + display: flex; + align-items: center; + gap: 0.4rem; + + background-color: inherit; + + border: none; + + font-size: var(--fz-200); + + cursor: pointer; + + svg { + width: 1.2rem; + height: 1.2rem; + } + } + } +} diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index 4e94c9f..45d8e97 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -2,6 +2,7 @@ import { ReactNode } from "react"; import CardComponent from "@/components/card/card.component"; import RatingProgressComponent from "./rating-progress.component"; +import ReviewItemCompoent from "./review-item.compoent"; import styles from "./reviews.module.css"; @@ -15,6 +16,7 @@ const ReviewsComponent = (): ReactNode => { معصومه دلجو
      +
      {2} از 5 @@ -22,10 +24,14 @@ const ReviewsComponent = (): ReactNode => { ({264} نظر)
      -
      +
      + + + +
      ) } diff --git a/src/icons/MingcuteMore2Line.tsx b/src/icons/MingcuteMore2Line.tsx new file mode 100644 index 0000000..23ed41e --- /dev/null +++ b/src/icons/MingcuteMore2Line.tsx @@ -0,0 +1,8 @@ +import React, { SVGProps } from 'react' + +export function MingcuteMore2Line(props: SVGProps) { + return ( + + ) +} +export default MingcuteMore2Line \ No newline at end of file diff --git a/src/icons/MingcuteThumbUp2Line.tsx b/src/icons/MingcuteThumbUp2Line.tsx new file mode 100644 index 0000000..5d08f04 --- /dev/null +++ b/src/icons/MingcuteThumbUp2Line.tsx @@ -0,0 +1,8 @@ +import React, { SVGProps } from 'react' + +export function MingcuteThumbUp2Line(props: SVGProps) { + return ( + + ) +} +export default MingcuteThumbUp2Line \ No newline at end of file From a2157ecb41f2d75742d739ba56bbdf5fcae08580 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Thu, 30 Jan 2025 16:27:36 +0330 Subject: [PATCH 31/45] [UPDATE] fixed name component --- ...item.compoent.tsx => review-item.component.tsx} | 4 ++-- .../components/reviews/reviews.component.tsx | 10 +++++++--- .../components/reviews/reviews.module.css | 14 +++++++++++++- 3 files changed, 22 insertions(+), 6 deletions(-) rename src/app/doctor/[[...slug]]/components/reviews/{review-item.compoent.tsx => review-item.component.tsx} (97%) diff --git a/src/app/doctor/[[...slug]]/components/reviews/review-item.compoent.tsx b/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx similarity index 97% rename from src/app/doctor/[[...slug]]/components/reviews/review-item.compoent.tsx rename to src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx index c47d6c1..068b19a 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/review-item.compoent.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx @@ -6,7 +6,7 @@ import MingcuteMore2Line from "@/icons/MingcuteMore2Line"; import styles from "./review-item.module.css" -const ReviewItemCompoent = (): ReactElement => { +const ReviewItemComponent = (): ReactElement => { return (
      @@ -68,4 +68,4 @@ const ReviewItemCompoent = (): ReactElement => { ) } -export default ReviewItemCompoent; +export default ReviewItemComponent; diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index 45d8e97..f942633 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -2,11 +2,13 @@ import { ReactNode } from "react"; import CardComponent from "@/components/card/card.component"; import RatingProgressComponent from "./rating-progress.component"; -import ReviewItemCompoent from "./review-item.compoent"; +import ReviewItemComponent from "./review-item.component"; import styles from "./reviews.module.css"; const ReviewsComponent = (): ReactNode => { + const commnets = Array.from({ length: 3 }, () => Math.floor(Math.random() * 6)); + return (
      @@ -29,8 +31,10 @@ const ReviewsComponent = (): ReactNode => {
      - - + + {commnets.map((_, index) => ( + + ))}
      ) diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css index bccc98a..26b8a33 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css @@ -14,7 +14,7 @@ margin-block: 1rem; font-size: var(--fz-200); - + .ave_rate { background-color: var(--color-success-darker); @@ -26,4 +26,16 @@ border-radius: 0.5rem; } } + + .card > *:not(:first-child) { + margin-top: 2rem; + + padding-top: 2rem; + + border-top: 1px solid var(--color-gray-90); + } + + .card{ + padding-block: 1.5rem; + } } From cb63824ee37792a745c775f3ed95f3a245359154 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Thu, 30 Jan 2025 16:43:35 +0330 Subject: [PATCH 32/45] [ADD] load more btn --- .../components/reviews/reviews.component.tsx | 3 +++ .../components/reviews/reviews.module.css | 4 +-- .../common/buttons/load-more.component.tsx | 13 ++++++++++ .../common/buttons/load-more.module.css | 26 +++++++++++++++++++ 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 src/components/common/buttons/load-more.component.tsx create mode 100644 src/components/common/buttons/load-more.module.css diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index f942633..1df81aa 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -3,6 +3,7 @@ import { ReactNode } from "react"; import CardComponent from "@/components/card/card.component"; import RatingProgressComponent from "./rating-progress.component"; import ReviewItemComponent from "./review-item.component"; +import LoadMoreComponent from "@/components/common/buttons/load-more.component"; import styles from "./reviews.module.css"; @@ -35,6 +36,8 @@ const ReviewsComponent = (): ReactNode => { {commnets.map((_, index) => ( ))} + +
      ) diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css index 26b8a33..a02c754 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css @@ -27,7 +27,7 @@ } } - .card > *:not(:first-child) { + .card > *:not(:first-child):not(:last-child) { margin-top: 2rem; padding-top: 2rem; @@ -35,7 +35,7 @@ border-top: 1px solid var(--color-gray-90); } - .card{ + .card { padding-block: 1.5rem; } } diff --git a/src/components/common/buttons/load-more.component.tsx b/src/components/common/buttons/load-more.component.tsx new file mode 100644 index 0000000..c3c4c95 --- /dev/null +++ b/src/components/common/buttons/load-more.component.tsx @@ -0,0 +1,13 @@ +import { ReactElement } from "react"; + +import styles from "./load-more.module.css"; + +const LoadMoreComponent = (): ReactElement => { + return ( + + ) +} + +export default LoadMoreComponent; diff --git a/src/components/common/buttons/load-more.module.css b/src/components/common/buttons/load-more.module.css new file mode 100644 index 0000000..9f48d3e --- /dev/null +++ b/src/components/common/buttons/load-more.module.css @@ -0,0 +1,26 @@ +.btn { + width: 100%; + + background-color: inherit; + + color: var(--color-primary); + font-size: var(--fz-300); + font-weight: 600; + + border: 1px solid var(--color-primary); + + border-radius: var(--border-radius); + + margin-top: 2rem; + + padding-block: 0.8rem; + + cursor: pointer; + + transition: 0.2s ease-in-out; + transition-property: background-color, color; + + &:hover { + background-color: var(--color-primary-fade); + } +} From 12df6b6e8bfc252871b68808c062f1aab8e388fb Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Fri, 31 Jan 2025 16:35:32 +0330 Subject: [PATCH 33/45] [ADD] helpre func timeAgo --- src/utils/timeAgo.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/utils/timeAgo.ts diff --git a/src/utils/timeAgo.ts b/src/utils/timeAgo.ts new file mode 100644 index 0000000..d37b2e4 --- /dev/null +++ b/src/utils/timeAgo.ts @@ -0,0 +1,31 @@ +export function timeAgo(dateString: string): string { + const createdAt = new Date(dateString); + + const iranTimeOffset = 3.5 * 60 * 60 * 1000; + const now = new Date(Date.now() + iranTimeOffset); + + const diffInSeconds = Math.floor((now.getTime() - createdAt.getTime()) / 1000); + + if (diffInSeconds < 300) return "چند لحظه قبل"; + + const diffInMinutes = Math.floor(diffInSeconds / 60); + if (diffInMinutes < 60) return `${diffInMinutes} دقیقه قبل`; + + const diffInHours = Math.floor(diffInMinutes / 60); + const remainingMinutes = diffInMinutes % 60; + + if (diffInHours < 24) { + return remainingMinutes === 0 + ? `${diffInHours} ساعت قبل` + : `${diffInHours} ساعت و ${remainingMinutes} دقیقه قبل`; + } + + const diffInDays = Math.floor(diffInHours / 24); + if (diffInDays < 30) return `${diffInDays} روز پیش`; + + const diffInMonths = Math.floor(diffInDays / 30); + if (diffInMonths < 12) return `${diffInMonths} ماه پیش`; + + const diffInYears = Math.floor(diffInDays / 365); + return `${diffInYears} سال پیش`; +} From 9362f4e560912aeeb0ab0cda6e564009afbdfa62 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Fri, 31 Jan 2025 16:36:01 +0330 Subject: [PATCH 34/45] [UPDATE] use mock data to doctor page --- .../components/about/about.component.tsx | 79 ++---- .../activities/activities.component.tsx | 11 +- .../components/contact/contact.component.tsx | 6 +- .../counsulation/counsulation.component.tsx | 7 +- .../counsulation/counsulation.module.css | 2 +- .../components/info/info-card.component.tsx | 5 +- .../components/reserve/reserve.module.css | 2 +- .../reviews/review-item.component.tsx | 34 ++- .../components/reviews/review-item.module.css | 8 +- .../components/reviews/reviews.component.tsx | 32 ++- src/app/doctor/[[...slug]]/page.module.css | 11 +- src/app/doctor/[[...slug]]/page.tsx | 17 +- src/models/doctors.ts | 240 +++++++++++++++++- src/types/doctor.type.ts | 11 + 14 files changed, 360 insertions(+), 105 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/about/about.component.tsx b/src/app/doctor/[[...slug]]/components/about/about.component.tsx index 75cd664..4626b9c 100644 --- a/src/app/doctor/[[...slug]]/components/about/about.component.tsx +++ b/src/app/doctor/[[...slug]]/components/about/about.component.tsx @@ -5,73 +5,26 @@ import CardComponent from "@/components/card/card.component"; import styles from "./about.module.css"; -const dangerousHtml = ` -
      -

      پزشک علیرضا یکی از متخصصان برجسته در زمینه پزشکی داخلی است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

      - -

      ویژگی‌های پزشک علیرضا:

      - -
        -
      • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
      • -
      • تحصیلات: دکترای پزشکی از دانشگاه تهران.
      • -
      • تخصص: درمان بیماری‌های مزمن و پیچیده.
      • -
      -

      خدمات ارائه شده:

      -
        -
      1. معاینه و تشخیص بیماری‌ها
      2. -
      3. تجویز داروهای مناسب
      4. -
      5. برنامه‌ریزی درمانی شخصی‌سازی شده
      6. -
      - -

      آمار و ارقام

      - - - - - - - - - - - - - - - - - - - - - - - - - -
      سالتعداد بیماران درمان شدهنرخ رضایت بیماران
      202115090%
      202220092%
      202325095%
      +type Props = { + aboutText: string; +} -

      برای اطلاعات بیشتر می‌توانید با پزشک علیرضا تماس بگیرید و یا به وب‌سایت او مراجعه کنید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

      -

      توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

      +const AboutComponent: React.FC = ({ aboutText }): ReactNode => { + return ( +
      +
      +

      درباره دکتر

      +
      + +
      +
      - `; - -const AboutComponent = (): ReactNode => { - return ( -
      -
      -

      درباره دکتر

      -
      - -
      - -
      - ) + ) } export default AboutComponent; diff --git a/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx b/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx index c23536f..e69e479 100644 --- a/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx +++ b/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx @@ -7,9 +7,12 @@ import MingcuteAwardLine from "@/icons/MingcuteAwardLine"; import styles from "./activities.module.css" -const comment = 231; +type Props = { + doctorName: string; + activeCounsulate:number; +} -const ActivitiesComponent = (): ReactElement => { +const ActivitiesComponent: React.FC = ({ doctorName,activeCounsulate }): ReactElement => { return (
      @@ -21,7 +24,7 @@ const ActivitiesComponent = (): ReactElement => {
    • - {comment.toLocaleString('fa-IR')} + {activeCounsulate.toLocaleString('fa-IR')}   مشاوره فعال @@ -30,7 +33,7 @@ const ActivitiesComponent = (): ReactElement => {
    • - پذیرش24 بیش از 2 سال و 11 ماه افتخار میزبانی از صفحه اختصاصی دکتر معصومه دلجو را داشته است. + پذیرش24 بیش از 2 سال و 11 ماه افتخار میزبانی از صفحه اختصاصی دکتر {doctorName} را داشته است.
    diff --git a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx index 2d553ff..94cf3b8 100644 --- a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx +++ b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx @@ -10,7 +10,11 @@ import MingcuteLocationLine from "@/icons/MingcuteLocationLine"; import styles from "./contact.module.css"; -const ContactComponent = (): ReactNode => { +type Props = { + address: string; +} + +const ContactComponent: React.FC = ({ address }): ReactNode => { return (
    diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx index a660841..cde21c5 100644 --- a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx +++ b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx @@ -6,10 +6,13 @@ import { MingcuteArrowLeftLine } from "@/icons/MingcuteArrowLeftLine"; import OnlineTowCiecleFill from "@/icons/OnlineTowCiecleFill"; import styles from "./counsulation.module.css" +; -const price = 190000; +type Props = { + price: number +} -const CounsulationComponent = (): ReactElement => { +const CounsulationComponent: React.FC = ({price}): ReactElement => { return (
    diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css index 59c2ddc..220d8cf 100644 --- a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css +++ b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css @@ -1,5 +1,5 @@ .card { - padding: 0; + padding: 0 !important; } .container { diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx index 8d9c773..de4a31d 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx +++ b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx @@ -13,6 +13,7 @@ import { DoctorModel } from "@/types/doctor.type"; import styles from "./info-card.module.css"; const view = 10; +const maxVote = 5; type Props = { doctorDetails: DoctorModel }; @@ -64,9 +65,9 @@ const InfoCardComponent: React.FC = ({ doctorDetails }): ReactElement => - {doctorDetails.averageRating} از 5 + {doctorDetails?.averageRating?.toLocaleString('fa-IR')} از {maxVote?.toLocaleString('fa-IR')}  رضایت - ({doctorDetails.totalVotes} نظر) + ({doctorDetails?.totalVotes?.toLocaleString('fa-IR')} نظر)
    diff --git a/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css b/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css index dab66c8..7950274 100644 --- a/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css +++ b/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css @@ -1,5 +1,5 @@ .card { - padding: 0; + padding: 0 !important; } .container { diff --git a/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx index 068b19a..ed8cd86 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx @@ -4,9 +4,18 @@ import MingcuteThumbUp2Line from "@/icons/MingcuteThumbUp2Line"; import MingcuteShare2Line from "@/icons/MingcuteShare2Line"; import MingcuteMore2Line from "@/icons/MingcuteMore2Line"; +import { timeAgo } from "@/utils/timeAgo"; + +import { DoctorsReviews } from "@/types/doctor.type"; + import styles from "./review-item.module.css" -const ReviewItemComponent = (): ReactElement => { +type Props = { + review?: DoctorsReviews; +} + +const ReviewItemComponent: React.FC = ({ review }): ReactElement => { + return (
    @@ -18,16 +27,20 @@ const ReviewItemComponent = (): ReactElement => {
    - مسعود - ویزیت شده + {review?.patientName} + {review?.isVisited && ویزیت شده}
    - - شش روز پیش - + {review?.date && + <> + + {timeAgo(review?.date)} + + +  |  + + } -  |  - ویزیت آنلاین پذیرش24 @@ -36,7 +49,7 @@ const ReviewItemComponent = (): ReactElement => {
    - 5 + {review?.vote.toLocaleString('fa-IR')}
    @@ -45,8 +58,7 @@ const ReviewItemComponent = (): ReactElement => {

    - لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد. در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها و شرایط سخت تایپ به پایان رسد وزمان مورد نیاز شامل حروفچینی دستاوردهای اصلی و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد. - + {review?.text}

    diff --git a/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css b/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css index 3f3fee8..32daeb0 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css +++ b/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css @@ -66,7 +66,9 @@ font-weight: 600; } - span:last-of-type { + .visited_badge { + display: inline-block; + color: var(--color-text-700); margin-inline-start: 0.5rem; @@ -82,9 +84,9 @@ } } - .date{ + .date { color: var(--color-text-700); - + font-size: var(--fz-100); } } diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index 1df81aa..3d72159 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -5,10 +5,20 @@ import RatingProgressComponent from "./rating-progress.component"; import ReviewItemComponent from "./review-item.component"; import LoadMoreComponent from "@/components/common/buttons/load-more.component"; +import { DoctorsReviews } from "@/types/doctor.type"; + import styles from "./reviews.module.css"; -const ReviewsComponent = (): ReactNode => { - const commnets = Array.from({ length: 3 }, () => Math.floor(Math.random() * 6)); +const maxVote = 5; + +type Props = { + averageRating: number; + totalVotes: number; + doctorsReviews: DoctorsReviews[]; +} + +const ReviewsComponent: React.FC = ({ averageRating, totalVotes, doctorsReviews }): ReactNode => { + // const commnets = Array.from({ length: 3 }, () => Math.floor(Math.random() * 6)); return (
    @@ -22,9 +32,9 @@ const ReviewsComponent = (): ReactNode => {
    - {2} از 5 + {averageRating.toLocaleString('fa-IR')} از {maxVote?.toLocaleString('fa-IR')}  رضایت - ({264} نظر) + ({totalVotes.toLocaleString('fa-IR')} نظر)
    @@ -32,13 +42,15 @@ const ReviewsComponent = (): ReactNode => {
    - - {commnets.map((_, index) => ( - - ))} + {(doctorsReviews?.length !== 0) && + + {doctorsReviews?.map((review: DoctorsReviews, index) => ( + + ))} - - + + + }
    ) } diff --git a/src/app/doctor/[[...slug]]/page.module.css b/src/app/doctor/[[...slug]]/page.module.css index e9914e8..7b6b705 100644 --- a/src/app/doctor/[[...slug]]/page.module.css +++ b/src/app/doctor/[[...slug]]/page.module.css @@ -1,7 +1,7 @@ .page { display: grid; grid-template-areas: "detaile reserve"; - grid-template-columns: 2fr 1fr; + grid-template-columns: 2fr 1fr; align-items: start; gap: 1rem; @@ -21,3 +21,12 @@ gap: 1rem; } } + +@media screen and (max-width: 1100px) { + .page { + grid-template-areas: + "detaile" + "reserve"; + grid-template-columns: 1fr; + } +} diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx index c701d49..540557a 100644 --- a/src/app/doctor/[[...slug]]/page.tsx +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -45,21 +45,28 @@ const DoctorPage: React.FC = ({ params }): ReactElement => {
    - +
    - +
    - +
    - +
    @@ -67,7 +74,7 @@ const DoctorPage: React.FC = ({ params }): ReactElement => {
    - +
    diff --git a/src/models/doctors.ts b/src/models/doctors.ts index dd9d056..655f3a2 100644 --- a/src/models/doctors.ts +++ b/src/models/doctors.ts @@ -3,12 +3,14 @@ import { DoctorModel } from "@/types/doctor.type"; export const doctorsData: DoctorModel[] = [ { slug: "9ffc", - name: "پوراندخت جعفري", + name: "پوراندخت جعفری", en_name: "dr-pourandokht-jafari", + price: 190000, image: "https://cdn.paziresh24.com/getImage/p24/search-women/8cd097208180a48ff5206f6122b9a5a5.jpg?size=150", isVerified: true, averageRating: 4.99, totalVotes: 294, + activeCounsulate: 325, address: "تهران، بین چهارراه بانک و میدان شهدا،ساختمان پزشکان مانا طبقه چهارم", nextAppointments: [ @@ -33,15 +35,85 @@ export const doctorsData: DoctorModel[] = [ en: "tehran", fa: "تهران", }, + about: ` +
    +

    دکتر پوراندخت جعفري یکی از متخصصان برجسته در زمینه پزشکی داخلی است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    + +

    ویژگی‌های دکتر پوراندخت جعفری:

    + +
      +
    • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
    • +
    • تحصیلات: دکترای پزشکی از دانشگاه تهران.
    • +
    • تخصص: درمان بیماری‌های مزمن و پیچیده.
    • +
    + +

    خدمات ارائه شده:

    +
      +
    1. معاینه و تشخیص بیماری‌ها
    2. +
    3. تجویز داروهای مناسب
    4. +
    5. برنامه‌ریزی درمانی شخصی‌سازی شده
    6. +
    + +

    آمار و ارقام

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    سالتعداد بیماران درمان شدهنرخ رضایت بیماران
    202115090%
    202220092%
    202325095%
    + +

    برای اطلاعات بیشتر می‌توانید با پزشک تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    + +

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    +
    + `, + doctorsReviews: [ + { + patientName: "محمدرضا", + isVisited: true, + date: "2025-01-25T12:30:00Z", + text: "دکتر جعفری بسیار خوش برخورد و با حوصله بودند، تشخیص عالی و درمان مؤثر داشتند.", + vote: 5, + }, + { + patientName: "الهام", + isVisited: false, + date: "2025-01-20T15:45:00Z", + text: "متأسفانه هنوز نوبت من نرسیده ولی از تعریف‌هایی که شنیدم مطمئنم پزشک خوبی هستند.", + vote: 4, + }, + ], }, { slug: "88f9", name: "مجتبی قدسی", en_name: "dr-mojtaba-ghodsi", + price: 100000, image: "https://cdn.paziresh24.com/getImage/p24/search-men/9b45c32fe70f1321b4b349bc1a5aff9c.jpeg?size=150", isVerified: true, averageRating: 4.92, totalVotes: 1487, + activeCounsulate: 35, address: "رشت، اول خیابان والی، خیابان شهیدان نوعی اقدم، نرسیده به بیمارستان امام خمینی، جنب داروخانه دکترنصیرپور", nextAppointments: [ @@ -66,15 +138,64 @@ export const doctorsData: DoctorModel[] = [ en: "rasht", fa: "رشت", }, + about: ` +
    +

    دکتر مجتبی قدسی یکی از متخصصان برجسته در زمینه بیماری‌های کودکان است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    + +

    ویژگی‌های پزشک:

    + +
      +
    • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
    • +
    • تحصیلات: دکترای پزشکی از دانشگاه تهران.
    • +
    • تخصص: درمان بیماری‌های مزمن و پیچیده.
    • +
    + +

    خدمات ارائه شده:

    +
      +
    1. معاینه و تشخیص بیماری‌ها
    2. +
    3. تجویز داروهای مناسب
    4. +
    5. برنامه‌ریزی درمانی شخصی‌سازی شده
    6. +
    + +

    برای اطلاعات بیشتر می‌توانید با دکتر مجتبی قدسی تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    + +

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    +
    + `, + doctorsReviews: [ + { + patientName: "حسین", + isVisited: true, + date: "2025-01-28T09:15:00Z", + text: "پزشک بسیار متخصص و با دقت. رفتار عالی با کودکان و توصیه‌های مفید.", + vote: 5, + }, + { + patientName: "زهرا", + isVisited: true, + date: "2025-01-26T14:20:00Z", + text: "نسبت به هزینه‌ای که دریافت می‌کنند خدمات خیلی خوبی ارائه می‌دهند.", + vote: 4, + }, + { + patientName: "علی", + isVisited: false, + date: "2025-01-18T18:00:00Z", + text: "در انتظار نوبت هستم اما سیستم نوبت‌دهی بسیار سریع و کاربردی بود.", + vote: 4, + }, + ], }, { slug: "406c", name: "امیرحسین پورداود", en_name: "dr-amirhossein-pourdavood", + price: 150000, image: "https://cdn.paziresh24.com/getImage/p24/search-men/ac84246810671c2744de34cb4e938aa2.jpg?size=150", isVerified: true, averageRating: 5, totalVotes: 190, + activeCounsulate: 105, address: "بندرعباس، خیابان ۲۲ بهمن ،جنب بانک مسکن ،ساختمان حکیم ،طبقه سوم", nextAppointments: [ { date: "2025-01-08", time: "11:00" }, @@ -98,15 +219,57 @@ export const doctorsData: DoctorModel[] = [ en: "bandarabas", fa: "بندرعباس", }, + about: ` +
    +

    دکتر امیرحسین پورداود یکی از متخصصان برجسته در زمینه بیماری‌های پوست است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    + +

    ویژگی‌های پزشک:

    + +
      +
    • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
    • +
    • تحصیلات: دکترای پزشکی از دانشگاه تهران.
    • +
    • تخصص: درمان بیماری‌های مزمن و پیچیده.
    • +
    + +

    خدمات ارائه شده:

    +
      +
    1. معاینه و تشخیص بیماری‌ها
    2. +
    3. تجویز داروهای مناسب
    4. +
    5. برنامه‌ریزی درمانی شخصی‌سازی شده
    6. +
    + +

    برای اطلاعات بیشتر می‌توانید با دکتر امیرحسین پورداود تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    + +

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    +
    + `, + doctorsReviews: [ + { + patientName: "فرزاد", + isVisited: true, + date: "2025-01-22T11:40:00Z", + text: "تجربه خوبی داشتم، مشاوره تخصصی و تجویز مناسب برای مشکلات پوستی من.", + vote: 5, + }, + { + patientName: "سمیرا", + isVisited: true, + date: "2025-01-21T10:30:00Z", + text: "نتایج درمانی بسیار خوب، اما هزینه کمی بالا بود.", + vote: 4, + }, + ] }, { slug: "160d", name: "اعظم قهساره اردستانی", en_name: "dr-azam-ghahsareh-ardestani", + price: 350000, image: "https://cdn.paziresh24.com/getImage/p24/search-women/dc1c321cabe87e09772530d3480d2adc.jpg?size=150", isVerified: true, averageRating: 4.95, totalVotes: 759, + activeCounsulate: 5, address: "زاهدان, شهرک ولی عصر .بیمارستان فوق تخصصی میلاد کلینیک اطفال ونوزادان", nextAppointments: [ @@ -131,15 +294,50 @@ export const doctorsData: DoctorModel[] = [ en: "zahedan", fa: "زاهدان", }, + about: ` +
    +

    دکتر اعظم قهساره اردستانی یکی از متخصصان برجسته در زمینه چشم است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    + +

    ویژگی‌های پزشک:

    + +
      +
    • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
    • +
    • تحصیلات: دکترای پزشکی از دانشگاه تهران.
    • +
    • تخصص: درمان بیماری‌های مزمن و پیچیده.
    • +
    + +

    خدمات ارائه شده:

    +
      +
    1. معاینه و تشخیص بیماری‌ها
    2. +
    3. تجویز داروهای مناسب
    4. +
    5. برنامه‌ریزی درمانی شخصی‌سازی شده
    6. +
    + +

    برای اطلاعات بیشتر می‌توانید با دکتر اعظم قهساره اردستانی تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    + +

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    +
    + `, + doctorsReviews: [ + { + patientName: "نیما", + isVisited: true, + date: "2025-01-29T13:50:00Z", + text: "دکتر اردستانی یکی از بهترین‌های تخصص چشم‌پزشکی است، توصیه می‌کنم.", + vote: 5, + }, + ], }, { slug: "4c81", name: "رضا پورعلی", en_name: "dr-reza-pourali", + price: 123000, image: "https://cdn.paziresh24.com/getImage/p24/search-men/c0a4da00da796354da26c3b1ed016ab3.png?size=150", isVerified: true, averageRating: 4.8259, totalVotes: 305, + activeCounsulate: 65, address: "کلینیک خیام بیمارستان تخصصی و فوق تخصصی حکیم|اردبیل, میدان بسیج، ابتدای جاده باغرود، مرکز اموزشی پژوهشی و درمانی حکیم (درمانگاه طب سنتی ; آدرس: کلینیک امام علی : بلوار جمهوری - بین جمهوری 6و 8)", nextAppointments: [ @@ -168,5 +366,45 @@ export const doctorsData: DoctorModel[] = [ en: "ardebil", fa: "اردبیل", }, + about: ` +
    +

    دکتر رضا پورعلی یکی از متخصصان برجسته در زمینه بیماری‌های قلب و عروق است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    + +

    ویژگی‌های پزشک:

    + +
      +
    • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
    • +
    • تحصیلات: دکترای پزشکی از دانشگاه تهران.
    • +
    • تخصص: درمان بیماری‌های مزمن و پیچیده.
    • +
    + +

    خدمات ارائه شده:

    +
      +
    1. معاینه و تشخیص بیماری‌ها
    2. +
    3. تجویز داروهای مناسب
    4. +
    5. برنامه‌ریزی درمانی شخصی‌سازی شده
    6. +
    + +

    برای اطلاعات بیشتر می‌توانید با دکتر رضا پورعلی تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    + +

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    +
    + `, + doctorsReviews: [ + { + patientName: "سعید", + isVisited: true, + date: "2025-01-23T16:10:00Z", + text: "پزشک باتجربه و حرفه‌ای. درمان‌های مؤثری دارند و نتایج عالی بود.", + vote: 5, + }, + { + patientName: "مریم", + isVisited: false, + date: "2025-01-19T17:45:00Z", + text: "به‌زودی برای ویزیت خواهم رفت، اما شنیده‌ام که خیلی دقیق و کاربلد هستند.", + vote: 4, + }, + ], }, ]; diff --git a/src/types/doctor.type.ts b/src/types/doctor.type.ts index a189f71..0c58ced 100644 --- a/src/types/doctor.type.ts +++ b/src/types/doctor.type.ts @@ -14,10 +14,18 @@ export interface Appointment { time: string; } +export type DoctorsReviews = { + patientName: string, + isVisited: boolean, + date: string, + text: string, + vote: number, +} export interface DoctorModel { slug: string; name: string; en_name: string; + price: number; image: string; isVerified: boolean; averageRating: number; @@ -30,4 +38,7 @@ export interface DoctorModel { specialty: Specialty; gender: Gender; city: City; + about: string; + activeCounsulate: number; + doctorsReviews: DoctorsReviews[]; } From bb9299bd0fefdc4a4e5fe1758333bfe81e1f8547 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Fri, 31 Jan 2025 18:33:10 +0330 Subject: [PATCH 35/45] [ADD] reviews filters --- .../reviews/reviews-wrapper-component.tsx | 27 +++ .../components/reviews/reviews.component.tsx | 16 +- .../components/reviews/reviews.module.css | 6 + .../components/sort/sort.component.tsx | 34 ++++ .../vote-filter/vote-filter.component.tsx | 34 ++++ src/app/doctor/[[...slug]]/page.tsx | 13 +- .../reviews/reviews-filters.provider.tsx | 57 ++++++ .../provider/reviews/reviews.provider.tsx | 53 ++++++ .../reviews/vote-filters.provider.tsx | 57 ++++++ src/components/select/select.component.tsx | 175 ++++++++++++++++++ src/components/select/select.module.css | 89 +++++++++ src/types/select-option.type.ts | 5 + 12 files changed, 558 insertions(+), 8 deletions(-) create mode 100644 src/app/doctor/[[...slug]]/components/reviews/reviews-wrapper-component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/sort/sort.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/vote-filter/vote-filter.component.tsx create mode 100644 src/app/doctor/provider/reviews/reviews-filters.provider.tsx create mode 100644 src/app/doctor/provider/reviews/reviews.provider.tsx create mode 100644 src/app/doctor/provider/reviews/vote-filters.provider.tsx create mode 100644 src/components/select/select.component.tsx create mode 100644 src/components/select/select.module.css create mode 100644 src/types/select-option.type.ts diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews-wrapper-component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews-wrapper-component.tsx new file mode 100644 index 0000000..47b8049 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews-wrapper-component.tsx @@ -0,0 +1,27 @@ +"use client" + +import { PropsWithChildren, ReactElement } from "react"; + +import ReviewsFiltersProvider from "@/app/doctor/provider/reviews/reviews-filters.provider"; +import ReviewsProvider from "@/app/doctor/provider/reviews/reviews.provider"; +import VoteFiltersProvider from "@/app/doctor/provider/reviews/vote-filters.provider"; + +import { DoctorsReviews } from "@/types/doctor.type"; + +type Props = PropsWithChildren & { + doctorsReviews: DoctorsReviews[]; +} + +const ReviewsWrapperComponent: React.FC = ({ children, doctorsReviews }): ReactElement => { + return ( + + + + {children} + + + + ) +} + +export default ReviewsWrapperComponent; diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index 3d72159..d5ea347 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -1,9 +1,15 @@ -import { ReactNode } from "react"; +'use client' + +import { ReactNode, useContext } from "react"; + +import { ReviewsContext } from "@/app/doctor/provider/reviews/reviews.provider"; import CardComponent from "@/components/card/card.component"; import RatingProgressComponent from "./rating-progress.component"; import ReviewItemComponent from "./review-item.component"; import LoadMoreComponent from "@/components/common/buttons/load-more.component"; +import SortComponent from "../sort/sort.component"; +import VoteFilterComponent from "../vote-filter/vote-filter.component"; import { DoctorsReviews } from "@/types/doctor.type"; @@ -18,7 +24,7 @@ type Props = { } const ReviewsComponent: React.FC = ({ averageRating, totalVotes, doctorsReviews }): ReactNode => { - // const commnets = Array.from({ length: 3 }, () => Math.floor(Math.random() * 6)); + const { filteredReviews } = useContext(ReviewsContext); return (
    @@ -44,7 +50,11 @@ const ReviewsComponent: React.FC = ({ averageRating, totalVotes, doctorsR {(doctorsReviews?.length !== 0) && - {doctorsReviews?.map((review: DoctorsReviews, index) => ( +
    + + +
    + {filteredReviews?.map((review: DoctorsReviews, index: number) => ( ))} diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css index a02c754..8e40770 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css @@ -38,4 +38,10 @@ .card { padding-block: 1.5rem; } + + .toolbar { + display: flex; + align-items: center; + gap: 1rem; + } } diff --git a/src/app/doctor/[[...slug]]/components/sort/sort.component.tsx b/src/app/doctor/[[...slug]]/components/sort/sort.component.tsx new file mode 100644 index 0000000..48fd839 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/sort/sort.component.tsx @@ -0,0 +1,34 @@ +"use client"; + +import { ReactElement, useContext } from "react"; + +import { ReviewsFiltersContext } from "@/app/doctor/provider/reviews/reviews-filters.provider"; + +import SelectComponent from "@/components/select/select.component"; + +import { SelectOptionType } from "@/types/select-option.type"; + +const options: SelectOptionType[] = [ + { id: 1, value: "all", label: "همه" }, + { id: 2, value: "visited", label: "ویزیت شده" }, + { id: 3, value: "noVisited", label: "ویزیت نشده" }, +]; + +export default function SortComponent(): ReactElement { + + const { filters, dispatchFilters } = useContext(ReviewsFiltersContext); + + const handleChange = (option: SelectOptionType) => { + dispatchFilters({ type: "SET_FILTER", payload: option.value as "all" | "visited" | "noVisited" }); + }; + + return ( + opt.value === filters.selectedFilter) || options[0]} + onSelectedOptionChange={handleChange} + /> + ); +} diff --git a/src/app/doctor/[[...slug]]/components/vote-filter/vote-filter.component.tsx b/src/app/doctor/[[...slug]]/components/vote-filter/vote-filter.component.tsx new file mode 100644 index 0000000..01f134f --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/vote-filter/vote-filter.component.tsx @@ -0,0 +1,34 @@ +"use client"; + +import { ReactElement, useContext } from "react"; + +import { VoteFiltersContext } from "@/app/doctor/provider/reviews/vote-filters.provider"; + +import SelectComponent from "@/components/select/select.component"; + +import { SelectOptionType } from "@/types/select-option.type"; + +const options: SelectOptionType[] = [ + { id: 1, value: "all", label: "همه" }, + { id: 2, value: "best", label: "امتیاز ۵" }, + { id: 3, value: "middle", label: "بین ۳ تا ۵ امتیاز" }, + { id: 4, value: "bad", label: "کمتر از ۳ امتیاز" }, +]; + +export default function VoteFilterComponent(): ReactElement { + const { filters, dispatchFilters } = useContext(VoteFiltersContext); + + const handleChange = (option: SelectOptionType) => { + dispatchFilters({ type: "SET_VOTE_FILTER", payload: option.value as "all" | "best" | "middle" | "bad" }); + }; + + return ( + opt.value === filters.selectedFilter) || options[0]} + onSelectedOptionChange={handleChange} + /> + ); +} diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx index 540557a..2b3cb4a 100644 --- a/src/app/doctor/[[...slug]]/page.tsx +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -2,6 +2,7 @@ import { ReactElement } from "react"; import { notFound } from "next/navigation"; +import ReviewsWrapperComponent from "./components/reviews/reviews-wrapper-component"; import InfoCardComponent from "./components/info/info-card.component"; import AboutComponent from "./components/about/about.component"; import ReserveComponent from "./components/reserve/reserve.component"; @@ -56,11 +57,13 @@ const DoctorPage: React.FC = ({ params }): ReactElement => {
    - + + +
    diff --git a/src/app/doctor/provider/reviews/reviews-filters.provider.tsx b/src/app/doctor/provider/reviews/reviews-filters.provider.tsx new file mode 100644 index 0000000..93d2815 --- /dev/null +++ b/src/app/doctor/provider/reviews/reviews-filters.provider.tsx @@ -0,0 +1,57 @@ +"use client"; + +import { + createContext, + Dispatch, + PropsWithChildren, + ReactElement, + useReducer, +} from "react"; + +type FilterState = { + selectedFilter: "all" | "visited" | "noVisited"; +}; + +type FilterAction = { + type: "SET_FILTER"; + payload: "all" | "visited" | "noVisited"; +}; + +const reviewsFiltersReducer = ( + state: FilterState, + action: FilterAction +): FilterState => { + switch (action.type) { + case "SET_FILTER": + return { ...state, selectedFilter: action.payload }; + default: + return state; + } +}; + +type ContextValue = { + filters: FilterState; + dispatchFilters: Dispatch; +}; + +export const ReviewsFiltersContext = createContext({ + filters: { selectedFilter: "all" }, + dispatchFilters: () => { }, +}); + +type Props = PropsWithChildren & { + defaultFilter?: FilterState; +}; + +export default function ReviewsFiltersProvider({ + children, + defaultFilter = { selectedFilter: "all" }, +}: Props): ReactElement { + const [filters, dispatchFilters] = useReducer(reviewsFiltersReducer, defaultFilter); + + return ( + + {children} + + ); +} diff --git a/src/app/doctor/provider/reviews/reviews.provider.tsx b/src/app/doctor/provider/reviews/reviews.provider.tsx new file mode 100644 index 0000000..92959d4 --- /dev/null +++ b/src/app/doctor/provider/reviews/reviews.provider.tsx @@ -0,0 +1,53 @@ +"use client"; + +import { createContext, PropsWithChildren, ReactElement, useContext, useEffect, useState } from "react"; + +import { ReviewsFiltersContext } from "./reviews-filters.provider"; +import { VoteFiltersContext } from "./vote-filters.provider"; + +import { DoctorsReviews } from "@/types/doctor.type"; + +type ContextValue = { + filteredReviews: DoctorsReviews[]; +}; + +export const ReviewsContext = createContext({ + filteredReviews: [], +}); + +type Props = PropsWithChildren & { + doctorsReviews: DoctorsReviews[]; +}; + +export default function ReviewsProvider({ children, doctorsReviews }: Props): ReactElement { + const { filters: visitFilters } = useContext(ReviewsFiltersContext); + const { filters: voteFilters } = useContext(VoteFiltersContext); + + const [filteredReviews, setFilteredReviews] = useState(doctorsReviews); + + useEffect(() => { + let filtered = doctorsReviews; + + if (visitFilters.selectedFilter === "visited") { + filtered = filtered.filter(review => review.isVisited); + } else if (visitFilters.selectedFilter === "noVisited") { + filtered = filtered.filter(review => !review.isVisited); + } + + if (voteFilters.selectedFilter === "best") { + filtered = filtered.filter(review => review.vote === 5); + } else if (voteFilters.selectedFilter === "middle") { + filtered = filtered.filter(review => review.vote >= 3 && review.vote < 5); + } else if (voteFilters.selectedFilter === "bad") { + filtered = filtered.filter(review => review.vote < 3); + } + + setFilteredReviews(filtered); + }, [visitFilters, voteFilters, doctorsReviews]); + + return ( + + {children} + + ); +} diff --git a/src/app/doctor/provider/reviews/vote-filters.provider.tsx b/src/app/doctor/provider/reviews/vote-filters.provider.tsx new file mode 100644 index 0000000..424b1c9 --- /dev/null +++ b/src/app/doctor/provider/reviews/vote-filters.provider.tsx @@ -0,0 +1,57 @@ +"use client"; + +import { + createContext, + Dispatch, + PropsWithChildren, + ReactElement, + useReducer, +} from "react"; + +type VoteFilterState = { + selectedFilter: "all" | "best" | "middle" | "bad"; +}; + +type VoteFilterAction = { + type: "SET_VOTE_FILTER"; + payload: "all" | "best" | "middle" | "bad"; +}; + +const voteFiltersReducer = ( + state: VoteFilterState, + action: VoteFilterAction +): VoteFilterState => { + switch (action.type) { + case "SET_VOTE_FILTER": + return { ...state, selectedFilter: action.payload }; + default: + return state; + } +}; + +type ContextValue = { + filters: VoteFilterState; + dispatchFilters: Dispatch; +}; + +export const VoteFiltersContext = createContext({ + filters: { selectedFilter: "all" }, + dispatchFilters: () => { }, +}); + +type Props = PropsWithChildren & { + defaultFilter?: VoteFilterState; +}; + +export default function VoteFiltersProvider({ + children, + defaultFilter = { selectedFilter: "all" }, +}: Props): ReactElement { + const [filters, dispatchFilters] = useReducer(voteFiltersReducer, defaultFilter); + + return ( + + {children} + + ); +} diff --git a/src/components/select/select.component.tsx b/src/components/select/select.component.tsx new file mode 100644 index 0000000..d795325 --- /dev/null +++ b/src/components/select/select.component.tsx @@ -0,0 +1,175 @@ +import { + ReactElement, + useCallback, + useEffect, + useRef, + useState, + MouseEvent, + useMemo, +} from "react"; + +import clsx from "clsx"; + +import { SelectOptionType } from "@/types/select-option.type"; + +import styles from "./select.module.css"; + +type Props = { + floating?: boolean; + title?: string; + placeholder?: string; + options: SelectOptionType[]; + selectedOption?: SelectOptionType; + onSelectedOptionChange?: (value: SelectOptionType) => void; + onIsOpenChange?: (value: boolean) => void; +}; + +export default function SelectComponent({ + floating, + title, + placeholder, + options, + selectedOption, + onSelectedOptionChange, + onIsOpenChange, +}: Props): ReactElement { + const [isOpen, setIsOpen] = useState(false); + const [highlightedIndex, setHighlightedIndex] = useState(0); + + const containerRef = useRef(null); + + const maximumCharactersCount = useMemo(() => { + return Math.max( + placeholder?.length ?? 0, + ...options.map((option) => option.label.length), + ); + }, [placeholder, options]); + + const selectOption = useCallback( + (option: SelectOptionType): void => { + if (option !== selectedOption) { + onSelectedOptionChange?.(option); + } + }, + [onSelectedOptionChange, selectedOption], + ); + + const optionClickHandler = ( + e: MouseEvent, + option: SelectOptionType, + ): void => { + e.stopPropagation(); + + selectOption(option); + setIsOpen(false); + }; + + useEffect(() => { + if (isOpen) { + setHighlightedIndex(0); + } + + onIsOpenChange?.(isOpen); + }, [isOpen, onIsOpenChange]); + + useEffect(() => { + const containerElement = containerRef.current; + + if (!containerElement) { + return; + } + + const keydownHandler = (e: KeyboardEvent): void => { + if (e.target != containerRef.current) { + return; + } + + switch (e.code) { + case "Enter": + case "Space": { + e.preventDefault(); + + if (isOpen) { + selectOption(options[highlightedIndex]); + } + + setIsOpen((prev) => !prev); + + break; + } + case "ArrowUp": + case "ArrowDown": { + e.preventDefault(); + + if (!isOpen) { + setIsOpen(true); + break; + } + + const newValue = highlightedIndex + (e.code === "ArrowDown" ? 1 : -1); + if (newValue >= 0 && newValue < options.length) { + setHighlightedIndex(newValue); + } + + break; + } + case "Escape": { + e.preventDefault(); + + setIsOpen(false); + break; + } + } + }; + + containerElement.addEventListener("keydown", keydownHandler); + + return () => { + containerElement.removeEventListener("keydown", keydownHandler); + }; + }, [isOpen, highlightedIndex, options, selectOption]); + + return ( +
    setIsOpen(false)} + onClick={() => setIsOpen((old) => !old)} + tabIndex={0} + className={clsx( + styles.container, + isOpen && styles.open, + floating && styles.floating, + )} + > + {title && {title}: } + + + {selectedOption?.label ?? placeholder ?? String.fromCharCode(160)} + + +
    + +
      + {options.map((option, index) => ( +
    • setHighlightedIndex(index)} + onClick={(e) => optionClickHandler(e, option)} + > + {option.label} +
    • + ))} +
    +
    + ); +} \ No newline at end of file diff --git a/src/components/select/select.module.css b/src/components/select/select.module.css new file mode 100644 index 0000000..e6d6161 --- /dev/null +++ b/src/components/select/select.module.css @@ -0,0 +1,89 @@ +.container { + position: relative; + + display: flex; + align-items: center; + gap: 0.5em; + + padding: 0.5rem; + + border: 1px solid var(--color-border); + border-radius: var(--border-radius); + + outline: none; + + cursor: default; + + .title { + font-size: var(--fz-300); + font-weight: 700; + } + + .value { + flex: 1 1 0; + } + + .caret { + border: 0.25em solid transparent; + border-block-start-color: var(--color-border); + + transform: translateY(25%); + } + + .options { + background-color: var(--color-surface-700); + box-shadow: var(--shadow-400); + + position: absolute; + inset-block-start: calc(100% + 0.5rem); + inset-inline-start: 0; + overflow-y: auto; + z-index: 100; + + max-block-size: 15rem; + min-inline-size: 100%; + inline-size: max-content; + + border: 1px solid var(--color-border); + border-radius: var(--border-radius); + + .option { + padding: 0.25rem 0.5rem; + + cursor: pointer; + + &.highlighted { + background-color: var(--color-surface-300); + } + + &.selected { + background-color: var(--color-primary); + color: var(--color-primary-opposite); + } + } + } + + &:not(&.open) { + .options { + display: none; + } + } + + &:focus, + &.open { + border-color: var(--color-primary); + + .caret { + border-block-start-color: var(--color-primary); + } + } + + &.floating { + background-color: var(--color-surface-700); + box-shadow: var(--shadow-400); + + &:not(&:focus, &.open) { + border-color: transparent; + } + } +} diff --git a/src/types/select-option.type.ts b/src/types/select-option.type.ts new file mode 100644 index 0000000..5634f63 --- /dev/null +++ b/src/types/select-option.type.ts @@ -0,0 +1,5 @@ +export type SelectOptionType = { + id: number; + value: string; + label: string; +}; \ No newline at end of file From 95d78e546a8d7feafa779c872374b72fa1b0ce22 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Fri, 31 Jan 2025 18:47:48 +0330 Subject: [PATCH 36/45] [PRETTIER] fixed prettier format --- next.config.mjs | 6 +- .../components/about/about.component.tsx | 11 +- .../activities/activities.component.tsx | 70 ++-- .../activities/activities.module.css | 2 +- .../components/contact/contact.component.tsx | 99 +++--- .../components/contact/contact.module.css | 4 +- .../counsulation/counsulation.component.tsx | 89 +++--- .../counsulation/counsulation.module.css | 2 +- .../components/info/info-card.component.tsx | 106 +++--- .../components/reserve/reserve.component.tsx | 45 ++- .../reviews/rating-progress.component.tsx | 48 +-- .../reviews/review-item.component.tsx | 117 ++++--- .../reviews/reviews-wrapper-component.tsx | 31 +- .../components/reviews/reviews.component.tsx | 88 ++--- .../components/sort/sort.component.tsx | 11 +- .../vote-filter/vote-filter.component.tsx | 10 +- src/app/doctor/[[...slug]]/page.tsx | 127 ++++---- .../reviews/reviews-filters.provider.tsx | 63 ++-- .../provider/reviews/reviews.provider.tsx | 29 +- .../reviews/vote-filters.provider.tsx | 63 ++-- .../filter/clear-all-filter.module.css | 2 +- .../components/item/item.component.tsx | 4 +- .../components/item/item.module.css | 2 +- .../components/list/list.component.tsx | 5 +- .../common/buttons/load-more.component.tsx | 8 +- .../common/buttons/load-more.module.css | 2 +- .../doctor-image/doctor-image.component.tsx | 35 +- .../global-search-box.module.css | 2 +- src/components/header/header.module.css | 2 +- src/components/select/select.component.tsx | 302 +++++++++--------- src/icons/MingcuteAwardLine.tsx | 22 +- src/icons/MingcuteBookmarkLine.tsx | 22 +- src/icons/MingcuteCalendar2Line.tsx | 22 +- src/icons/MingcuteCommentLine.tsx | 22 +- src/icons/MingcuteEye2Line.tsx | 22 +- src/icons/MingcuteMore2Line.tsx | 22 +- src/icons/MingcutePencilLine.tsx | 22 +- src/icons/MingcutePhoneLine.tsx | 22 +- src/icons/MingcuteShare2Line.tsx | 22 +- src/icons/MingcuteThumbUp2Line.tsx | 22 +- src/icons/MingcuteWalkFill.tsx | 14 +- src/icons/OnlineTowCiecleFill.tsx | 31 +- src/models/doctors.ts | 17 +- src/types/doctor.type.ts | 12 +- src/types/select-option.type.ts | 8 +- src/utils/timeAgo.ts | 42 +-- 46 files changed, 951 insertions(+), 778 deletions(-) diff --git a/next.config.mjs b/next.config.mjs index 26bfa4f..ac526ca 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -9,9 +9,9 @@ const nextConfig = { ], }, -// images: { -// domains: ['assets.acme.com'], -// }, + // images: { + // domains: ['assets.acme.com'], + // }, }; export default nextConfig; diff --git a/src/app/doctor/[[...slug]]/components/about/about.component.tsx b/src/app/doctor/[[...slug]]/components/about/about.component.tsx index 4626b9c..22fdfe0 100644 --- a/src/app/doctor/[[...slug]]/components/about/about.component.tsx +++ b/src/app/doctor/[[...slug]]/components/about/about.component.tsx @@ -1,15 +1,12 @@ - import { ReactNode } from "react"; import CardComponent from "@/components/card/card.component"; import styles from "./about.module.css"; - type Props = { aboutText: string; -} - +}; const AboutComponent: React.FC = ({ aboutText }): ReactNode => { return ( @@ -19,12 +16,12 @@ const AboutComponent: React.FC = ({ aboutText }): ReactNode => {
    - ) -} + ); +}; export default AboutComponent; diff --git a/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx b/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx index e69e479..dc610e6 100644 --- a/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx +++ b/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx @@ -5,42 +5,48 @@ import CardComponent from "@/components/card/card.component"; import MingcuteCommentLine from "@/icons/MingcuteCommentLine"; import MingcuteAwardLine from "@/icons/MingcuteAwardLine"; -import styles from "./activities.module.css" +import styles from "./activities.module.css"; type Props = { - doctorName: string; - activeCounsulate:number; -} + doctorName: string; + activeCounsulate: number; +}; -const ActivitiesComponent: React.FC = ({ doctorName,activeCounsulate }): ReactElement => { - return ( -
    -
    -

    فعالیت‌ها

    -
    - -
    -
      -
    • - - - {activeCounsulate.toLocaleString('fa-IR')} -   - مشاوره فعال - -
    • +const ActivitiesComponent: React.FC = ({ + doctorName, + activeCounsulate, +}): ReactElement => { + return ( +
      +
      +

      فعالیت‌ها

      +
      + +
      +
        +
      • + + + + {activeCounsulate.toLocaleString("fa-IR")} + +   + مشاوره فعال + +
      • -
      • - - - پذیرش24 بیش از 2 سال و 11 ماه افتخار میزبانی از صفحه اختصاصی دکتر {doctorName} را داشته است. - -
      • -
      -
      -
      +
    • + + + پذیرش24 بیش از 2 سال و 11 ماه افتخار میزبانی از صفحه اختصاصی + دکتر {doctorName} را داشته است. + +
    • +
    - ) -} +
    +
    + ); +}; export default ActivitiesComponent; diff --git a/src/app/doctor/[[...slug]]/components/activities/activities.module.css b/src/app/doctor/[[...slug]]/components/activities/activities.module.css index 47091e6..0af42c4 100644 --- a/src/app/doctor/[[...slug]]/components/activities/activities.module.css +++ b/src/app/doctor/[[...slug]]/components/activities/activities.module.css @@ -28,7 +28,7 @@ width: 1.4rem; height: 1.4rem; } - .consulation_count{ + .consulation_count { font-weight: 600; } } diff --git a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx index 94cf3b8..f85d17d 100644 --- a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx +++ b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx @@ -1,4 +1,3 @@ - import { ReactNode } from "react"; import CardComponent from "@/components/card/card.component"; @@ -11,65 +10,59 @@ import MingcuteLocationLine from "@/icons/MingcuteLocationLine"; import styles from "./contact.module.css"; type Props = { - address: string; -} + address: string; +}; const ContactComponent: React.FC = ({ address }): ReactNode => { - return ( -
    -
    -

    آدرس و تلفن تماس

    + return ( +
    +
    +

    آدرس و تلفن تماس

    -
    - - - گزارش تلفن و آدرس صحیح - -
    -
    +
    + + گزارش تلفن و آدرس صحیح +
    +
    - -
    - مطب دکتر معصومه دلجو -
    - تهران - - تهران، وحدت اسلامی، رازی -
    + +
    + مطب دکتر معصومه دلجو +
    + تهران - + تهران، وحدت اسلامی، رازی +
    -
    -
    - +
  • + +
  • +
+ - ) -} + + + ); +}; export default ContactComponent; diff --git a/src/app/doctor/[[...slug]]/components/contact/contact.module.css b/src/app/doctor/[[...slug]]/components/contact/contact.module.css index 11138e4..0e2268e 100644 --- a/src/app/doctor/[[...slug]]/components/contact/contact.module.css +++ b/src/app/doctor/[[...slug]]/components/contact/contact.module.css @@ -24,7 +24,7 @@ cursor: pointer; - svg{ + svg { width: 1rem; height: 1rem; } @@ -86,7 +86,7 @@ background-color: var(--color-primary-fade); } - svg{ + svg { width: 1.4rem; height: 1.4rem; } diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx index cde21c5..934f773 100644 --- a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx +++ b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx @@ -5,53 +5,50 @@ import CardComponent from "@/components/card/card.component"; import { MingcuteArrowLeftLine } from "@/icons/MingcuteArrowLeftLine"; import OnlineTowCiecleFill from "@/icons/OnlineTowCiecleFill"; -import styles from "./counsulation.module.css" -; +import styles from "./counsulation.module.css"; type Props = { - price: number -} - -const CounsulationComponent: React.FC = ({price}): ReactElement => { - return ( - -
-
-
- - همین الان آنلاین ویزیت شوید -
- {price.toLocaleString("fa-IR")} تومان -
- -
-
    -
  • ویزیت آنلاین در پیام رسان:
  • -
  • تضمین بازپرداخت مبلغ ویزیت در صورت نارضایتی
  • -
  • امکان برقراری تماس با این پزشک وجود دارد.
  • -
  • - تا -   - ۳ روز -   - می‌توانید هر سوالی دارید از پزشک بپرسید -
  • -
  • میانگین زمان انتظار تا ویزیت:
  • -
-
- - -
-
- ) -} + price: number; +}; + +const CounsulationComponent: React.FC = ({ price }): ReactElement => { + return ( + +
+
+
+ + همین الان آنلاین ویزیت شوید +
+ {price.toLocaleString("fa-IR")} تومان +
+ +
+
    +
  • ویزیت آنلاین در پیام رسان:
  • +
  • تضمین بازپرداخت مبلغ ویزیت در صورت نارضایتی
  • +
  • امکان برقراری تماس با این پزشک وجود دارد.
  • +
  • + تا   + ۳ روز +   می‌توانید هر سوالی دارید از پزشک بپرسید +
  • +
  • میانگین زمان انتظار تا ویزیت:
  • +
+
+ + +
+
+ ); +}; export default CounsulationComponent; diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css index 220d8cf..34a325e 100644 --- a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css +++ b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css @@ -25,7 +25,7 @@ align-items: center; gap: 0.4rem; - svg{ + svg { width: 1.13rem; height: 1.13rem; } diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx index de4a31d..9df775c 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx +++ b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx @@ -17,62 +17,64 @@ const maxVote = 5; type Props = { doctorDetails: DoctorModel }; -const InfoCardComponent: React.FC = ({ doctorDetails }): ReactElement => { - return ( - -
+const InfoCardComponent: React.FC = ({ + doctorDetails, +}): ReactElement => { + return ( + +
+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
-
-
    -
  • - -
  • -
  • - -
  • -
  • - -
  • -
+ + {view.toLocaleString("fa-IR")}K + + +
- - {view.toLocaleString('fa-IR')}K - - -
+
+ -
- +
+

{doctorDetails.name}

+ شماره نظام پزشکی: 165017 +
+
-
-

{doctorDetails.name}

- شماره نظام پزشکی: 165017 -
-
+
+ {doctorDetails.brief} -
- - {doctorDetails.brief} - - - - {doctorDetails?.averageRating?.toLocaleString('fa-IR')} از {maxVote?.toLocaleString('fa-IR')} -  رضایت - ({doctorDetails?.totalVotes?.toLocaleString('fa-IR')} نظر) - -
-
- - ) -} + + + {doctorDetails?.averageRating?.toLocaleString("fa-IR")} از{" "} + {maxVote?.toLocaleString("fa-IR")} + +  رضایت ({doctorDetails?.totalVotes?.toLocaleString("fa-IR")}{" "} + نظر) + +
+
+
+ ); +}; export default InfoCardComponent; diff --git a/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx b/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx index 4cf6385..4d5a220 100644 --- a/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reserve/reserve.component.tsx @@ -1,4 +1,3 @@ - import { ReactNode } from "react"; import CardComponent from "@/components/card/card.component"; @@ -9,27 +8,27 @@ import MingcuteWalkFill from "@/icons/MingcuteWalkFill"; import styles from "./reserve.module.css"; const ReserveComponent = (): ReactNode => { - return ( - -
-
- - نوبت اینترنتی و مراجعه حضوری -
- -
-
    -
  • امکان دریافت زودترین نوبت
  • -
-
- - -
-
- ) -} + return ( + +
+
+ + نوبت اینترنتی و مراجعه حضوری +
+ +
+
    +
  • امکان دریافت زودترین نوبت
  • +
+
+ + +
+
+ ); +}; export default ReserveComponent; diff --git a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx index de922b7..22967b3 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx @@ -3,30 +3,30 @@ import { ReactElement } from "react"; import styles from "./rating-progress.module.css"; const RatingProgressComponent = (): ReactElement => { - const ratings = Array.from({ length: 3 }, () => Math.floor(Math.random() * 6)); + const ratings = Array.from({ length: 3 }, () => + Math.floor(Math.random() * 6), + ); - return ( -
- {ratings.map((rating, index) => { - return ( -
- - برخورد مناسب پزشک - -
-
-
-
- {rating.toLocaleString('fa-IR')} -
-
- ); - })} -
- ) -} + return ( +
+ {ratings.map((rating, index) => { + return ( +
+ برخورد مناسب پزشک +
+
+
+
+ {rating.toLocaleString("fa-IR")} +
+
+ ); + })} +
+ ); +}; export default RatingProgressComponent; diff --git a/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx index ed8cd86..a15ae7b 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx @@ -8,76 +8,67 @@ import { timeAgo } from "@/utils/timeAgo"; import { DoctorsReviews } from "@/types/doctor.type"; -import styles from "./review-item.module.css" +import styles from "./review-item.module.css"; type Props = { - review?: DoctorsReviews; -} + review?: DoctorsReviews; +}; const ReviewItemComponent: React.FC = ({ review }): ReactElement => { - - return ( -
- -
-
-
- س -
- -
-
- {review?.patientName} - {review?.isVisited && ویزیت شده} -
-
- {review?.date && - <> - - {timeAgo(review?.date)} - - -  |  - - } - - - ویزیت آنلاین پذیرش24 - -
-
-
- -
- {review?.vote.toLocaleString('fa-IR')} - -
- -
-
+ return ( +
+
+
+
+ س +
+ +
+
+ {review?.patientName} + {review?.isVisited && ( + ویزیت شده + )}
+
+ {review?.date && ( + <> + {timeAgo(review?.date)} +  |  + + )} + + ویزیت آنلاین پذیرش24 +
+
+
-

- {review?.text} -

- -
- +
+ + {review?.vote.toLocaleString("fa-IR")} + - -
+
+ +
- ) -} +
+ +

{review?.text}

+ +
+ + + +
+
+ ); +}; export default ReviewItemComponent; diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews-wrapper-component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews-wrapper-component.tsx index 47b8049..37ea6af 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews-wrapper-component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews-wrapper-component.tsx @@ -1,4 +1,4 @@ -"use client" +"use client"; import { PropsWithChildren, ReactElement } from "react"; @@ -9,19 +9,22 @@ import VoteFiltersProvider from "@/app/doctor/provider/reviews/vote-filters.prov import { DoctorsReviews } from "@/types/doctor.type"; type Props = PropsWithChildren & { - doctorsReviews: DoctorsReviews[]; -} + doctorsReviews: DoctorsReviews[]; +}; -const ReviewsWrapperComponent: React.FC = ({ children, doctorsReviews }): ReactElement => { - return ( - - - - {children} - - - - ) -} +const ReviewsWrapperComponent: React.FC = ({ + children, + doctorsReviews, +}): ReactElement => { + return ( + + + + {children} + + + + ); +}; export default ReviewsWrapperComponent; diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index d5ea347..431e4b1 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -1,4 +1,4 @@ -'use client' +"use client"; import { ReactNode, useContext } from "react"; @@ -18,51 +18,57 @@ import styles from "./reviews.module.css"; const maxVote = 5; type Props = { - averageRating: number; - totalVotes: number; - doctorsReviews: DoctorsReviews[]; -} + averageRating: number; + totalVotes: number; + doctorsReviews: DoctorsReviews[]; +}; -const ReviewsComponent: React.FC = ({ averageRating, totalVotes, doctorsReviews }): ReactNode => { - const { filteredReviews } = useContext(ReviewsContext); +const ReviewsComponent: React.FC = ({ + averageRating, + totalVotes, + doctorsReviews, +}): ReactNode => { + const { filteredReviews } = useContext(ReviewsContext); - return ( -
-
-

- نظرات در مورد دکتر -   - معصومه دلجو -

-
+ return ( +
+
+

+ نظرات در مورد دکتر +   + معصومه دلجو +

+
- -
- {averageRating.toLocaleString('fa-IR')} از {maxVote?.toLocaleString('fa-IR')} -  رضایت - ({totalVotes.toLocaleString('fa-IR')} نظر) -
+ +
+ + {averageRating.toLocaleString("fa-IR")} از{" "} + {maxVote?.toLocaleString("fa-IR")} + +  رضایت ({totalVotes.toLocaleString("fa-IR")} نظر) +
-
- -
-
+
+ +
+
- {(doctorsReviews?.length !== 0) && - -
- - -
- {filteredReviews?.map((review: DoctorsReviews, index: number) => ( - - ))} + {doctorsReviews?.length !== 0 && ( + +
+ + +
+ {filteredReviews?.map((review: DoctorsReviews, index: number) => ( + + ))} - -
- } -
- ) -} + + + )} +
+ ); +}; export default ReviewsComponent; diff --git a/src/app/doctor/[[...slug]]/components/sort/sort.component.tsx b/src/app/doctor/[[...slug]]/components/sort/sort.component.tsx index 48fd839..f7a589b 100644 --- a/src/app/doctor/[[...slug]]/components/sort/sort.component.tsx +++ b/src/app/doctor/[[...slug]]/components/sort/sort.component.tsx @@ -15,11 +15,13 @@ const options: SelectOptionType[] = [ ]; export default function SortComponent(): ReactElement { - const { filters, dispatchFilters } = useContext(ReviewsFiltersContext); const handleChange = (option: SelectOptionType) => { - dispatchFilters({ type: "SET_FILTER", payload: option.value as "all" | "visited" | "noVisited" }); + dispatchFilters({ + type: "SET_FILTER", + payload: option.value as "all" | "visited" | "noVisited", + }); }; return ( @@ -27,7 +29,10 @@ export default function SortComponent(): ReactElement { floating title="مرتب‌سازی" options={options} - selectedOption={options.find(opt => opt.value === filters.selectedFilter) || options[0]} + selectedOption={ + options.find((opt) => opt.value === filters.selectedFilter) || + options[0] + } onSelectedOptionChange={handleChange} /> ); diff --git a/src/app/doctor/[[...slug]]/components/vote-filter/vote-filter.component.tsx b/src/app/doctor/[[...slug]]/components/vote-filter/vote-filter.component.tsx index 01f134f..0725bdd 100644 --- a/src/app/doctor/[[...slug]]/components/vote-filter/vote-filter.component.tsx +++ b/src/app/doctor/[[...slug]]/components/vote-filter/vote-filter.component.tsx @@ -19,7 +19,10 @@ export default function VoteFilterComponent(): ReactElement { const { filters, dispatchFilters } = useContext(VoteFiltersContext); const handleChange = (option: SelectOptionType) => { - dispatchFilters({ type: "SET_VOTE_FILTER", payload: option.value as "all" | "best" | "middle" | "bad" }); + dispatchFilters({ + type: "SET_VOTE_FILTER", + payload: option.value as "all" | "best" | "middle" | "bad", + }); }; return ( @@ -27,7 +30,10 @@ export default function VoteFilterComponent(): ReactElement { floating title="بر اساس امتیاز" options={options} - selectedOption={options.find(opt => opt.value === filters.selectedFilter) || options[0]} + selectedOption={ + options.find((opt) => opt.value === filters.selectedFilter) || + options[0] + } onSelectedOptionChange={handleChange} /> ); diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx index 2b3cb4a..4d0ee89 100644 --- a/src/app/doctor/[[...slug]]/page.tsx +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -16,72 +16,73 @@ import { doctorsData } from "@/models/doctors"; import styles from "./page.module.css"; - type Props = { - params: { - slug: string; - }; -} + params: { + slug: string; + }; +}; const DoctorPage: React.FC = ({ params }): ReactElement => { - let slug = ""; - if (!Array.isArray(params.slug)) return notFound(); - if (params.slug.length === 1) { - slug = params.slug[0]; - } else if (params.slug.length === 2) { - slug = params.slug[1]; - } else return notFound(); - - - const doctorDetails = doctorsData.filter((doctor: DoctorModel) => (slug === doctor.slug))[0] - - if (!doctorDetails) return notFound() - - - return ( -
-
-
- -
- -
- -
- -
- -
- -
- - - -
-
- -
-
- -
- -
- -
- -
- -
-
+ let slug = ""; + if (!Array.isArray(params.slug)) return notFound(); + if (params.slug.length === 1) { + slug = params.slug[0]; + } else if (params.slug.length === 2) { + slug = params.slug[1]; + } else return notFound(); + + const doctorDetails = doctorsData.filter( + (doctor: DoctorModel) => slug === doctor.slug, + )[0]; + + if (!doctorDetails) return notFound(); + + return ( +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+
+ +
+
+ +
+ +
+ +
+ +
+
- ) -} +
+
+ ); +}; export default DoctorPage; diff --git a/src/app/doctor/provider/reviews/reviews-filters.provider.tsx b/src/app/doctor/provider/reviews/reviews-filters.provider.tsx index 93d2815..ffe9142 100644 --- a/src/app/doctor/provider/reviews/reviews-filters.provider.tsx +++ b/src/app/doctor/provider/reviews/reviews-filters.provider.tsx @@ -1,57 +1,60 @@ "use client"; import { - createContext, - Dispatch, - PropsWithChildren, - ReactElement, - useReducer, + createContext, + Dispatch, + PropsWithChildren, + ReactElement, + useReducer, } from "react"; type FilterState = { - selectedFilter: "all" | "visited" | "noVisited"; + selectedFilter: "all" | "visited" | "noVisited"; }; type FilterAction = { - type: "SET_FILTER"; - payload: "all" | "visited" | "noVisited"; + type: "SET_FILTER"; + payload: "all" | "visited" | "noVisited"; }; const reviewsFiltersReducer = ( - state: FilterState, - action: FilterAction + state: FilterState, + action: FilterAction, ): FilterState => { - switch (action.type) { - case "SET_FILTER": - return { ...state, selectedFilter: action.payload }; - default: - return state; - } + switch (action.type) { + case "SET_FILTER": + return { ...state, selectedFilter: action.payload }; + default: + return state; + } }; type ContextValue = { - filters: FilterState; - dispatchFilters: Dispatch; + filters: FilterState; + dispatchFilters: Dispatch; }; export const ReviewsFiltersContext = createContext({ - filters: { selectedFilter: "all" }, - dispatchFilters: () => { }, + filters: { selectedFilter: "all" }, + dispatchFilters: () => {}, }); type Props = PropsWithChildren & { - defaultFilter?: FilterState; + defaultFilter?: FilterState; }; export default function ReviewsFiltersProvider({ - children, - defaultFilter = { selectedFilter: "all" }, + children, + defaultFilter = { selectedFilter: "all" }, }: Props): ReactElement { - const [filters, dispatchFilters] = useReducer(reviewsFiltersReducer, defaultFilter); - - return ( - - {children} - - ); + const [filters, dispatchFilters] = useReducer( + reviewsFiltersReducer, + defaultFilter, + ); + + return ( + + {children} + + ); } diff --git a/src/app/doctor/provider/reviews/reviews.provider.tsx b/src/app/doctor/provider/reviews/reviews.provider.tsx index 92959d4..e677cd6 100644 --- a/src/app/doctor/provider/reviews/reviews.provider.tsx +++ b/src/app/doctor/provider/reviews/reviews.provider.tsx @@ -1,6 +1,13 @@ "use client"; -import { createContext, PropsWithChildren, ReactElement, useContext, useEffect, useState } from "react"; +import { + createContext, + PropsWithChildren, + ReactElement, + useContext, + useEffect, + useState, +} from "react"; import { ReviewsFiltersContext } from "./reviews-filters.provider"; import { VoteFiltersContext } from "./vote-filters.provider"; @@ -19,27 +26,33 @@ type Props = PropsWithChildren & { doctorsReviews: DoctorsReviews[]; }; -export default function ReviewsProvider({ children, doctorsReviews }: Props): ReactElement { +export default function ReviewsProvider({ + children, + doctorsReviews, +}: Props): ReactElement { const { filters: visitFilters } = useContext(ReviewsFiltersContext); const { filters: voteFilters } = useContext(VoteFiltersContext); - const [filteredReviews, setFilteredReviews] = useState(doctorsReviews); + const [filteredReviews, setFilteredReviews] = + useState(doctorsReviews); useEffect(() => { let filtered = doctorsReviews; if (visitFilters.selectedFilter === "visited") { - filtered = filtered.filter(review => review.isVisited); + filtered = filtered.filter((review) => review.isVisited); } else if (visitFilters.selectedFilter === "noVisited") { - filtered = filtered.filter(review => !review.isVisited); + filtered = filtered.filter((review) => !review.isVisited); } if (voteFilters.selectedFilter === "best") { - filtered = filtered.filter(review => review.vote === 5); + filtered = filtered.filter((review) => review.vote === 5); } else if (voteFilters.selectedFilter === "middle") { - filtered = filtered.filter(review => review.vote >= 3 && review.vote < 5); + filtered = filtered.filter( + (review) => review.vote >= 3 && review.vote < 5, + ); } else if (voteFilters.selectedFilter === "bad") { - filtered = filtered.filter(review => review.vote < 3); + filtered = filtered.filter((review) => review.vote < 3); } setFilteredReviews(filtered); diff --git a/src/app/doctor/provider/reviews/vote-filters.provider.tsx b/src/app/doctor/provider/reviews/vote-filters.provider.tsx index 424b1c9..bbf90a1 100644 --- a/src/app/doctor/provider/reviews/vote-filters.provider.tsx +++ b/src/app/doctor/provider/reviews/vote-filters.provider.tsx @@ -1,57 +1,60 @@ "use client"; import { - createContext, - Dispatch, - PropsWithChildren, - ReactElement, - useReducer, + createContext, + Dispatch, + PropsWithChildren, + ReactElement, + useReducer, } from "react"; type VoteFilterState = { - selectedFilter: "all" | "best" | "middle" | "bad"; + selectedFilter: "all" | "best" | "middle" | "bad"; }; type VoteFilterAction = { - type: "SET_VOTE_FILTER"; - payload: "all" | "best" | "middle" | "bad"; + type: "SET_VOTE_FILTER"; + payload: "all" | "best" | "middle" | "bad"; }; const voteFiltersReducer = ( - state: VoteFilterState, - action: VoteFilterAction + state: VoteFilterState, + action: VoteFilterAction, ): VoteFilterState => { - switch (action.type) { - case "SET_VOTE_FILTER": - return { ...state, selectedFilter: action.payload }; - default: - return state; - } + switch (action.type) { + case "SET_VOTE_FILTER": + return { ...state, selectedFilter: action.payload }; + default: + return state; + } }; type ContextValue = { - filters: VoteFilterState; - dispatchFilters: Dispatch; + filters: VoteFilterState; + dispatchFilters: Dispatch; }; export const VoteFiltersContext = createContext({ - filters: { selectedFilter: "all" }, - dispatchFilters: () => { }, + filters: { selectedFilter: "all" }, + dispatchFilters: () => {}, }); type Props = PropsWithChildren & { - defaultFilter?: VoteFilterState; + defaultFilter?: VoteFilterState; }; export default function VoteFiltersProvider({ - children, - defaultFilter = { selectedFilter: "all" }, + children, + defaultFilter = { selectedFilter: "all" }, }: Props): ReactElement { - const [filters, dispatchFilters] = useReducer(voteFiltersReducer, defaultFilter); - - return ( - - {children} - - ); + const [filters, dispatchFilters] = useReducer( + voteFiltersReducer, + defaultFilter, + ); + + return ( + + {children} + + ); } diff --git a/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css b/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css index 547c081..931d364 100644 --- a/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css +++ b/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css @@ -1,6 +1,6 @@ .clear { width: 100%; - + border-radius: var(--border-radius); background-color: var(--color-danger); diff --git a/src/app/doctors/[[...slug]]/components/item/item.component.tsx b/src/app/doctors/[[...slug]]/components/item/item.component.tsx index 3c48936..fcfaef2 100644 --- a/src/app/doctors/[[...slug]]/components/item/item.component.tsx +++ b/src/app/doctors/[[...slug]]/components/item/item.component.tsx @@ -10,7 +10,6 @@ import { DoctorModel } from "@/types/doctor.type"; import styles from "./item.module.css"; - type Props = { item: DoctorModel; }; @@ -19,7 +18,6 @@ const ItemComponent = ({ item }: Props): ReactElement => { return (
  • -
    @@ -52,7 +50,7 @@ const ItemComponent = ({ item }: Props): ReactElement => { دریافت نوبت -
  • + ); }; diff --git a/src/app/doctors/[[...slug]]/components/item/item.module.css b/src/app/doctors/[[...slug]]/components/item/item.module.css index d2c9d16..e10f438 100644 --- a/src/app/doctors/[[...slug]]/components/item/item.module.css +++ b/src/app/doctors/[[...slug]]/components/item/item.module.css @@ -70,7 +70,7 @@ margin-block-start: 1.5rem; address { - color:var(--color-gray-40); + color: var(--color-gray-40); font-style: normal; font-size: var(--fz-200); diff --git a/src/app/doctors/[[...slug]]/components/list/list.component.tsx b/src/app/doctors/[[...slug]]/components/list/list.component.tsx index 6d38c3f..2c479dc 100644 --- a/src/app/doctors/[[...slug]]/components/list/list.component.tsx +++ b/src/app/doctors/[[...slug]]/components/list/list.component.tsx @@ -19,7 +19,10 @@ const ListComponent = ({ return (
      {doctors.map((item: DoctorModel) => ( - + ))} diff --git a/src/components/common/buttons/load-more.component.tsx b/src/components/common/buttons/load-more.component.tsx index c3c4c95..7a61c31 100644 --- a/src/components/common/buttons/load-more.component.tsx +++ b/src/components/common/buttons/load-more.component.tsx @@ -3,11 +3,7 @@ import { ReactElement } from "react"; import styles from "./load-more.module.css"; const LoadMoreComponent = (): ReactElement => { - return ( - - ) -} + return ; +}; export default LoadMoreComponent; diff --git a/src/components/common/buttons/load-more.module.css b/src/components/common/buttons/load-more.module.css index 9f48d3e..bca3859 100644 --- a/src/components/common/buttons/load-more.module.css +++ b/src/components/common/buttons/load-more.module.css @@ -2,7 +2,7 @@ width: 100%; background-color: inherit; - + color: var(--color-primary); font-size: var(--fz-300); font-weight: 600; diff --git a/src/components/common/doctor-image/doctor-image.component.tsx b/src/components/common/doctor-image/doctor-image.component.tsx index d588518..9371081 100644 --- a/src/components/common/doctor-image/doctor-image.component.tsx +++ b/src/components/common/doctor-image/doctor-image.component.tsx @@ -11,24 +11,25 @@ import maleImg from "@/assets/fallback-images/portrait-3d-male-doctor.jpg"; import styles from "./doctor-image.module.css"; type Props = { - name: string; - image: string; - gender: Gender; + name: string; + image: string; + gender: Gender; }; -const DoctorImageComponent: React.FC = ({ name, image, gender }): ReactElement => { - return ( - {name} - ) -} +const DoctorImageComponent: React.FC = ({ + name, + image, + gender, +}): ReactElement => { + return ( + {name} + ); +}; export default DoctorImageComponent; diff --git a/src/components/global-search-box/global-search-box.module.css b/src/components/global-search-box/global-search-box.module.css index 78bf4b7..a05e99b 100644 --- a/src/components/global-search-box/global-search-box.module.css +++ b/src/components/global-search-box/global-search-box.module.css @@ -9,7 +9,7 @@ padding-inline: 1rem; - border: 1px solid var(--color-border); + border: 1px solid var(--color-border); border-radius: 999rem; .prefix { diff --git a/src/components/header/header.module.css b/src/components/header/header.module.css index 8cc9005..1b0283c 100644 --- a/src/components/header/header.module.css +++ b/src/components/header/header.module.css @@ -1,7 +1,7 @@ .header { background-color: var(--color-surface-700); box-shadow: var(--shadow-400); - + display: flex; align-items: center; gap: 2rem; diff --git a/src/components/select/select.component.tsx b/src/components/select/select.component.tsx index d795325..ee4ec12 100644 --- a/src/components/select/select.component.tsx +++ b/src/components/select/select.component.tsx @@ -1,11 +1,11 @@ import { - ReactElement, - useCallback, - useEffect, - useRef, - useState, - MouseEvent, - useMemo, + ReactElement, + useCallback, + useEffect, + useRef, + useState, + MouseEvent, + useMemo, } from "react"; import clsx from "clsx"; @@ -15,161 +15,161 @@ import { SelectOptionType } from "@/types/select-option.type"; import styles from "./select.module.css"; type Props = { - floating?: boolean; - title?: string; - placeholder?: string; - options: SelectOptionType[]; - selectedOption?: SelectOptionType; - onSelectedOptionChange?: (value: SelectOptionType) => void; - onIsOpenChange?: (value: boolean) => void; + floating?: boolean; + title?: string; + placeholder?: string; + options: SelectOptionType[]; + selectedOption?: SelectOptionType; + onSelectedOptionChange?: (value: SelectOptionType) => void; + onIsOpenChange?: (value: boolean) => void; }; export default function SelectComponent({ - floating, - title, - placeholder, - options, - selectedOption, - onSelectedOptionChange, - onIsOpenChange, + floating, + title, + placeholder, + options, + selectedOption, + onSelectedOptionChange, + onIsOpenChange, }: Props): ReactElement { - const [isOpen, setIsOpen] = useState(false); - const [highlightedIndex, setHighlightedIndex] = useState(0); - - const containerRef = useRef(null); - - const maximumCharactersCount = useMemo(() => { - return Math.max( - placeholder?.length ?? 0, - ...options.map((option) => option.label.length), - ); - }, [placeholder, options]); - - const selectOption = useCallback( - (option: SelectOptionType): void => { - if (option !== selectedOption) { - onSelectedOptionChange?.(option); - } - }, - [onSelectedOptionChange, selectedOption], - ); - - const optionClickHandler = ( - e: MouseEvent, - option: SelectOptionType, - ): void => { - e.stopPropagation(); + const [isOpen, setIsOpen] = useState(false); + const [highlightedIndex, setHighlightedIndex] = useState(0); - selectOption(option); - setIsOpen(false); - }; + const containerRef = useRef(null); - useEffect(() => { - if (isOpen) { - setHighlightedIndex(0); + const maximumCharactersCount = useMemo(() => { + return Math.max( + placeholder?.length ?? 0, + ...options.map((option) => option.label.length), + ); + }, [placeholder, options]); + + const selectOption = useCallback( + (option: SelectOptionType): void => { + if (option !== selectedOption) { + onSelectedOptionChange?.(option); + } + }, + [onSelectedOptionChange, selectedOption], + ); + + const optionClickHandler = ( + e: MouseEvent, + option: SelectOptionType, + ): void => { + e.stopPropagation(); + + selectOption(option); + setIsOpen(false); + }; + + useEffect(() => { + if (isOpen) { + setHighlightedIndex(0); + } + + onIsOpenChange?.(isOpen); + }, [isOpen, onIsOpenChange]); + + useEffect(() => { + const containerElement = containerRef.current; + + if (!containerElement) { + return; + } + + const keydownHandler = (e: KeyboardEvent): void => { + if (e.target != containerRef.current) { + return; + } + + switch (e.code) { + case "Enter": + case "Space": { + e.preventDefault(); + + if (isOpen) { + selectOption(options[highlightedIndex]); + } + + setIsOpen((prev) => !prev); + + break; } + case "ArrowUp": + case "ArrowDown": { + e.preventDefault(); + + if (!isOpen) { + setIsOpen(true); + break; + } - onIsOpenChange?.(isOpen); - }, [isOpen, onIsOpenChange]); + const newValue = highlightedIndex + (e.code === "ArrowDown" ? 1 : -1); + if (newValue >= 0 && newValue < options.length) { + setHighlightedIndex(newValue); + } - useEffect(() => { - const containerElement = containerRef.current; + break; + } + case "Escape": { + e.preventDefault(); - if (!containerElement) { - return; + setIsOpen(false); + break; } + } + }; + + containerElement.addEventListener("keydown", keydownHandler); - const keydownHandler = (e: KeyboardEvent): void => { - if (e.target != containerRef.current) { - return; - } - - switch (e.code) { - case "Enter": - case "Space": { - e.preventDefault(); - - if (isOpen) { - selectOption(options[highlightedIndex]); - } - - setIsOpen((prev) => !prev); - - break; - } - case "ArrowUp": - case "ArrowDown": { - e.preventDefault(); - - if (!isOpen) { - setIsOpen(true); - break; - } - - const newValue = highlightedIndex + (e.code === "ArrowDown" ? 1 : -1); - if (newValue >= 0 && newValue < options.length) { - setHighlightedIndex(newValue); - } - - break; - } - case "Escape": { - e.preventDefault(); - - setIsOpen(false); - break; - } - } - }; - - containerElement.addEventListener("keydown", keydownHandler); - - return () => { - containerElement.removeEventListener("keydown", keydownHandler); - }; - }, [isOpen, highlightedIndex, options, selectOption]); - - return ( -
      setIsOpen(false)} - onClick={() => setIsOpen((old) => !old)} - tabIndex={0} + return () => { + containerElement.removeEventListener("keydown", keydownHandler); + }; + }, [isOpen, highlightedIndex, options, selectOption]); + + return ( +
      setIsOpen(false)} + onClick={() => setIsOpen((old) => !old)} + tabIndex={0} + className={clsx( + styles.container, + isOpen && styles.open, + floating && styles.floating, + )} + > + {title && {title}: } + + + {selectedOption?.label ?? placeholder ?? String.fromCharCode(160)} + + +
      + +
        + {options.map((option, index) => ( +
      • - {title && {title}: } - - - {selectedOption?.label ?? placeholder ?? String.fromCharCode(160)} - - -
        - -
          - {options.map((option, index) => ( -
        • setHighlightedIndex(index)} - onClick={(e) => optionClickHandler(e, option)} - > - {option.label} -
        • - ))} -
        -
      - ); -} \ No newline at end of file + onMouseEnter={() => setHighlightedIndex(index)} + onClick={(e) => optionClickHandler(e, option)} + > + {option.label} + + ))} +
    +
    + ); +} diff --git a/src/icons/MingcuteAwardLine.tsx b/src/icons/MingcuteAwardLine.tsx index 08fa821..788e752 100644 --- a/src/icons/MingcuteAwardLine.tsx +++ b/src/icons/MingcuteAwardLine.tsx @@ -1,8 +1,22 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcuteAwardLine(props: SVGProps) { return ( - - ) + + + + + + + ); } -export default MingcuteAwardLine \ No newline at end of file +export default MingcuteAwardLine; diff --git a/src/icons/MingcuteBookmarkLine.tsx b/src/icons/MingcuteBookmarkLine.tsx index a2e3592..cbf58e4 100644 --- a/src/icons/MingcuteBookmarkLine.tsx +++ b/src/icons/MingcuteBookmarkLine.tsx @@ -1,8 +1,22 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcuteBookmarkLine(props: SVGProps) { return ( - - ) + + + + + + + ); } -export default MingcuteBookmarkLine \ No newline at end of file +export default MingcuteBookmarkLine; diff --git a/src/icons/MingcuteCalendar2Line.tsx b/src/icons/MingcuteCalendar2Line.tsx index 13da4bd..cef29b4 100644 --- a/src/icons/MingcuteCalendar2Line.tsx +++ b/src/icons/MingcuteCalendar2Line.tsx @@ -1,8 +1,22 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcuteCalendar2Line(props: SVGProps) { return ( - - ) + + + + + + + ); } -export default MingcuteCalendar2Line \ No newline at end of file +export default MingcuteCalendar2Line; diff --git a/src/icons/MingcuteCommentLine.tsx b/src/icons/MingcuteCommentLine.tsx index 63bf32a..1a460ab 100644 --- a/src/icons/MingcuteCommentLine.tsx +++ b/src/icons/MingcuteCommentLine.tsx @@ -1,8 +1,22 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcuteCommentLine(props: SVGProps) { return ( - - ) + + + + + + + ); } -export default MingcuteCommentLine \ No newline at end of file +export default MingcuteCommentLine; diff --git a/src/icons/MingcuteEye2Line.tsx b/src/icons/MingcuteEye2Line.tsx index 877ddde..55c35d4 100644 --- a/src/icons/MingcuteEye2Line.tsx +++ b/src/icons/MingcuteEye2Line.tsx @@ -1,8 +1,22 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcuteEye2Line(props: SVGProps) { return ( - - ) + + + + + + + ); } -export default MingcuteEye2Line \ No newline at end of file +export default MingcuteEye2Line; diff --git a/src/icons/MingcuteMore2Line.tsx b/src/icons/MingcuteMore2Line.tsx index 23ed41e..a6bbec8 100644 --- a/src/icons/MingcuteMore2Line.tsx +++ b/src/icons/MingcuteMore2Line.tsx @@ -1,8 +1,22 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcuteMore2Line(props: SVGProps) { return ( - - ) + + + + + + + ); } -export default MingcuteMore2Line \ No newline at end of file +export default MingcuteMore2Line; diff --git a/src/icons/MingcutePencilLine.tsx b/src/icons/MingcutePencilLine.tsx index 82bb5ba..87990d3 100644 --- a/src/icons/MingcutePencilLine.tsx +++ b/src/icons/MingcutePencilLine.tsx @@ -1,8 +1,22 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcutePencilLine(props: SVGProps) { return ( - - ) + + + + + + + ); } -export default MingcutePencilLine \ No newline at end of file +export default MingcutePencilLine; diff --git a/src/icons/MingcutePhoneLine.tsx b/src/icons/MingcutePhoneLine.tsx index 43e1652..40506ca 100644 --- a/src/icons/MingcutePhoneLine.tsx +++ b/src/icons/MingcutePhoneLine.tsx @@ -1,8 +1,22 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcutePhoneLine(props: SVGProps) { return ( - - ) + + + + + + + ); } -export default MingcutePhoneLine \ No newline at end of file +export default MingcutePhoneLine; diff --git a/src/icons/MingcuteShare2Line.tsx b/src/icons/MingcuteShare2Line.tsx index b31caa2..3813ad0 100644 --- a/src/icons/MingcuteShare2Line.tsx +++ b/src/icons/MingcuteShare2Line.tsx @@ -1,8 +1,22 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcuteShare2Line(props: SVGProps) { return ( - - ) + + + + + + + ); } -export default MingcuteShare2Line \ No newline at end of file +export default MingcuteShare2Line; diff --git a/src/icons/MingcuteThumbUp2Line.tsx b/src/icons/MingcuteThumbUp2Line.tsx index 5d08f04..03fa73f 100644 --- a/src/icons/MingcuteThumbUp2Line.tsx +++ b/src/icons/MingcuteThumbUp2Line.tsx @@ -1,8 +1,22 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcuteThumbUp2Line(props: SVGProps) { return ( - - ) + + + + + + + ); } -export default MingcuteThumbUp2Line \ No newline at end of file +export default MingcuteThumbUp2Line; diff --git a/src/icons/MingcuteWalkFill.tsx b/src/icons/MingcuteWalkFill.tsx index a71f93c..7867d9c 100644 --- a/src/icons/MingcuteWalkFill.tsx +++ b/src/icons/MingcuteWalkFill.tsx @@ -1,8 +1,9 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function MingcuteWalkFill(props: SVGProps) { return ( - ) { > - + - ) + ); } -export default MingcuteWalkFill \ No newline at end of file +export default MingcuteWalkFill; diff --git a/src/icons/OnlineTowCiecleFill.tsx b/src/icons/OnlineTowCiecleFill.tsx index 7209bd7..509d9c2 100644 --- a/src/icons/OnlineTowCiecleFill.tsx +++ b/src/icons/OnlineTowCiecleFill.tsx @@ -1,20 +1,19 @@ -import React, { SVGProps } from 'react' +import React, { SVGProps } from "react"; export function OnlineTowCiecleFill(props: SVGProps) { - return ( - - - - - ) + return ( + + + + + ); } export default OnlineTowCiecleFill; - diff --git a/src/models/doctors.ts b/src/models/doctors.ts index 655f3a2..3059717 100644 --- a/src/models/doctors.ts +++ b/src/models/doctors.ts @@ -6,7 +6,8 @@ export const doctorsData: DoctorModel[] = [ name: "پوراندخت جعفری", en_name: "dr-pourandokht-jafari", price: 190000, - image: "https://cdn.paziresh24.com/getImage/p24/search-women/8cd097208180a48ff5206f6122b9a5a5.jpg?size=150", + image: + "https://cdn.paziresh24.com/getImage/p24/search-women/8cd097208180a48ff5206f6122b9a5a5.jpg?size=150", isVerified: true, averageRating: 4.99, totalVotes: 294, @@ -109,7 +110,8 @@ export const doctorsData: DoctorModel[] = [ name: "مجتبی قدسی", en_name: "dr-mojtaba-ghodsi", price: 100000, - image: "https://cdn.paziresh24.com/getImage/p24/search-men/9b45c32fe70f1321b4b349bc1a5aff9c.jpeg?size=150", + image: + "https://cdn.paziresh24.com/getImage/p24/search-men/9b45c32fe70f1321b4b349bc1a5aff9c.jpeg?size=150", isVerified: true, averageRating: 4.92, totalVotes: 1487, @@ -191,7 +193,8 @@ export const doctorsData: DoctorModel[] = [ name: "امیرحسین پورداود", en_name: "dr-amirhossein-pourdavood", price: 150000, - image: "https://cdn.paziresh24.com/getImage/p24/search-men/ac84246810671c2744de34cb4e938aa2.jpg?size=150", + image: + "https://cdn.paziresh24.com/getImage/p24/search-men/ac84246810671c2744de34cb4e938aa2.jpg?size=150", isVerified: true, averageRating: 5, totalVotes: 190, @@ -258,14 +261,15 @@ export const doctorsData: DoctorModel[] = [ text: "نتایج درمانی بسیار خوب، اما هزینه کمی بالا بود.", vote: 4, }, - ] + ], }, { slug: "160d", name: "اعظم قهساره اردستانی", en_name: "dr-azam-ghahsareh-ardestani", price: 350000, - image: "https://cdn.paziresh24.com/getImage/p24/search-women/dc1c321cabe87e09772530d3480d2adc.jpg?size=150", + image: + "https://cdn.paziresh24.com/getImage/p24/search-women/dc1c321cabe87e09772530d3480d2adc.jpg?size=150", isVerified: true, averageRating: 4.95, totalVotes: 759, @@ -333,7 +337,8 @@ export const doctorsData: DoctorModel[] = [ name: "رضا پورعلی", en_name: "dr-reza-pourali", price: 123000, - image: "https://cdn.paziresh24.com/getImage/p24/search-men/c0a4da00da796354da26c3b1ed016ab3.png?size=150", + image: + "https://cdn.paziresh24.com/getImage/p24/search-men/c0a4da00da796354da26c3b1ed016ab3.png?size=150", isVerified: true, averageRating: 4.8259, totalVotes: 305, diff --git a/src/types/doctor.type.ts b/src/types/doctor.type.ts index 0c58ced..e4a79ff 100644 --- a/src/types/doctor.type.ts +++ b/src/types/doctor.type.ts @@ -15,12 +15,12 @@ export interface Appointment { } export type DoctorsReviews = { - patientName: string, - isVisited: boolean, - date: string, - text: string, - vote: number, -} + patientName: string; + isVisited: boolean; + date: string; + text: string; + vote: number; +}; export interface DoctorModel { slug: string; name: string; diff --git a/src/types/select-option.type.ts b/src/types/select-option.type.ts index 5634f63..273dbdf 100644 --- a/src/types/select-option.type.ts +++ b/src/types/select-option.type.ts @@ -1,5 +1,5 @@ export type SelectOptionType = { - id: number; - value: string; - label: string; -}; \ No newline at end of file + id: number; + value: string; + label: string; +}; diff --git a/src/utils/timeAgo.ts b/src/utils/timeAgo.ts index d37b2e4..403625b 100644 --- a/src/utils/timeAgo.ts +++ b/src/utils/timeAgo.ts @@ -1,31 +1,33 @@ export function timeAgo(dateString: string): string { - const createdAt = new Date(dateString); + const createdAt = new Date(dateString); - const iranTimeOffset = 3.5 * 60 * 60 * 1000; - const now = new Date(Date.now() + iranTimeOffset); + const iranTimeOffset = 3.5 * 60 * 60 * 1000; + const now = new Date(Date.now() + iranTimeOffset); - const diffInSeconds = Math.floor((now.getTime() - createdAt.getTime()) / 1000); + const diffInSeconds = Math.floor( + (now.getTime() - createdAt.getTime()) / 1000, + ); - if (diffInSeconds < 300) return "چند لحظه قبل"; + if (diffInSeconds < 300) return "چند لحظه قبل"; - const diffInMinutes = Math.floor(diffInSeconds / 60); - if (diffInMinutes < 60) return `${diffInMinutes} دقیقه قبل`; + const diffInMinutes = Math.floor(diffInSeconds / 60); + if (diffInMinutes < 60) return `${diffInMinutes} دقیقه قبل`; - const diffInHours = Math.floor(diffInMinutes / 60); - const remainingMinutes = diffInMinutes % 60; + const diffInHours = Math.floor(diffInMinutes / 60); + const remainingMinutes = diffInMinutes % 60; - if (diffInHours < 24) { - return remainingMinutes === 0 - ? `${diffInHours} ساعت قبل` - : `${diffInHours} ساعت و ${remainingMinutes} دقیقه قبل`; - } + if (diffInHours < 24) { + return remainingMinutes === 0 + ? `${diffInHours} ساعت قبل` + : `${diffInHours} ساعت و ${remainingMinutes} دقیقه قبل`; + } - const diffInDays = Math.floor(diffInHours / 24); - if (diffInDays < 30) return `${diffInDays} روز پیش`; + const diffInDays = Math.floor(diffInHours / 24); + if (diffInDays < 30) return `${diffInDays} روز پیش`; - const diffInMonths = Math.floor(diffInDays / 30); - if (diffInMonths < 12) return `${diffInMonths} ماه پیش`; + const diffInMonths = Math.floor(diffInDays / 30); + if (diffInMonths < 12) return `${diffInMonths} ماه پیش`; - const diffInYears = Math.floor(diffInDays / 365); - return `${diffInYears} سال پیش`; + const diffInYears = Math.floor(diffInDays / 365); + return `${diffInYears} سال پیش`; } From 1ab085c53e10c4d0b1840031eb795e9d48b47da8 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Fri, 31 Jan 2025 18:57:52 +0330 Subject: [PATCH 37/45] [FIX] build bug --- .../components/contact/contact.component.tsx | 21 +++++++++++++++---- src/app/doctor/[[...slug]]/page.tsx | 5 ++++- src/models/doctors.ts | 6 +++--- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx index f85d17d..3652796 100644 --- a/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx +++ b/src/app/doctor/[[...slug]]/components/contact/contact.component.tsx @@ -11,9 +11,22 @@ import styles from "./contact.module.css"; type Props = { address: string; + doctorName: string; }; -const ContactComponent: React.FC = ({ address }): ReactNode => { +const extractCityAndAddress = (fullAddress: string) => { + const parts = fullAddress.split(/[,.،]/); + const city = parts[0]?.trim() || ""; + const remainingAddress = parts.slice(1).join(", ").trim(); + return { city, remainingAddress }; +}; + +const ContactComponent: React.FC = ({ + address, + doctorName, +}): ReactNode => { + const { city, remainingAddress } = extractCityAndAddress(address); + return (
    @@ -27,10 +40,10 @@ const ContactComponent: React.FC = ({ address }): ReactNode => {
    - مطب دکتر معصومه دلجو + مطب دکتر {doctorName}
    - تهران - - تهران، وحدت اسلامی، رازی + {city} - + {remainingAddress}
    diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx index 4d0ee89..9984c1f 100644 --- a/src/app/doctor/[[...slug]]/page.tsx +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -78,7 +78,10 @@ const DoctorPage: React.FC = ({ params }): ReactElement => {
    - +
    diff --git a/src/models/doctors.ts b/src/models/doctors.ts index 3059717..3bec0ca 100644 --- a/src/models/doctors.ts +++ b/src/models/doctors.ts @@ -265,7 +265,7 @@ export const doctorsData: DoctorModel[] = [ }, { slug: "160d", - name: "اعظم قهساره اردستانی", + name: "اعظم قهساره", en_name: "dr-azam-ghahsareh-ardestani", price: 350000, image: @@ -300,7 +300,7 @@ export const doctorsData: DoctorModel[] = [ }, about: `
    -

    دکتر اعظم قهساره اردستانی یکی از متخصصان برجسته در زمینه چشم است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    +

    دکتر اعظم قهساره یکی از متخصصان برجسته در زمینه چشم است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    ویژگی‌های پزشک:

    @@ -317,7 +317,7 @@ export const doctorsData: DoctorModel[] = [
  • برنامه‌ریزی درمانی شخصی‌سازی شده
  • -

    برای اطلاعات بیشتر می‌توانید با دکتر اعظم قهساره اردستانی تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    +

    برای اطلاعات بیشتر می‌توانید با دکتر اعظم قهساره تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    From 191d2ceeefeb93b4d7ac0e715436c29c1b745d50 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Sat, 1 Feb 2025 15:21:53 +0330 Subject: [PATCH 38/45] [UPDATE] fixed Hydration errors --- .../reviews/rating-progress.component.tsx | 19 ++++++++------ .../components/reviews/reviews.component.tsx | 6 +++-- src/app/doctor/[[...slug]]/page.tsx | 1 + src/models/doctors.ts | 25 +++++++++++++++++++ src/types/doctor.type.ts | 3 +++ 5 files changed, 44 insertions(+), 10 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx index 22967b3..092137b 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx @@ -1,26 +1,29 @@ import { ReactElement } from "react"; +import { RatingProgress } from "@/types/doctor.type"; + import styles from "./rating-progress.module.css"; -const RatingProgressComponent = (): ReactElement => { - const ratings = Array.from({ length: 3 }, () => - Math.floor(Math.random() * 6), - ); +type Props = { + ratingProgress:RatingProgress[]; +} + +const RatingProgressComponent: React.FC = ({ ratingProgress }): ReactElement => { return (
    - {ratings.map((rating, index) => { + {ratingProgress.map((rating, index) => { return (
    - برخورد مناسب پزشک + {rating.lable}
    - {rating.toLocaleString("fa-IR")} + {rating.rate.toLocaleString("fa-IR")}
    ); diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index 431e4b1..7e54402 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -11,7 +11,7 @@ import LoadMoreComponent from "@/components/common/buttons/load-more.component"; import SortComponent from "../sort/sort.component"; import VoteFilterComponent from "../vote-filter/vote-filter.component"; -import { DoctorsReviews } from "@/types/doctor.type"; +import { DoctorsReviews, RatingProgress } from "@/types/doctor.type"; import styles from "./reviews.module.css"; @@ -21,12 +21,14 @@ type Props = { averageRating: number; totalVotes: number; doctorsReviews: DoctorsReviews[]; + ratingProgress:RatingProgress[]; }; const ReviewsComponent: React.FC = ({ averageRating, totalVotes, doctorsReviews, + ratingProgress }): ReactNode => { const { filteredReviews } = useContext(ReviewsContext); @@ -50,7 +52,7 @@ const ReviewsComponent: React.FC = ({
    - +
    diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx index 9984c1f..93d6101 100644 --- a/src/app/doctor/[[...slug]]/page.tsx +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -63,6 +63,7 @@ const DoctorPage: React.FC = ({ params }): ReactElement => { totalVotes={doctorDetails?.totalVotes} averageRating={doctorDetails?.averageRating} doctorsReviews={doctorDetails?.doctorsReviews} + ratingProgress={doctorDetails?.ratingProgress} />
    diff --git a/src/models/doctors.ts b/src/models/doctors.ts index 3bec0ca..bdbad9f 100644 --- a/src/models/doctors.ts +++ b/src/models/doctors.ts @@ -88,6 +88,11 @@ export const doctorsData: DoctorModel[] = [

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    `, + ratingProgress: [ + { lable: "برخورد مناسب", rate: 5 }, + { lable: "ویزیت به موقع", rate: 5 }, + { lable: "هزینه ویزیت", rate: 4 }, + ], doctorsReviews: [ { patientName: "محمدرضا", @@ -164,6 +169,11 @@ export const doctorsData: DoctorModel[] = [

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    `, + ratingProgress: [ + { lable: "برخورد مناسب", rate: 5 }, + { lable: "ویزیت به موقع", rate: 4 }, + { lable: "هزینه ویزیت", rate: 2 }, + ], doctorsReviews: [ { patientName: "حسین", @@ -246,6 +256,11 @@ export const doctorsData: DoctorModel[] = [

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    `, + ratingProgress: [ + { lable: "برخورد مناسب", rate: 4 }, + { lable: "ویزیت به موقع", rate: 3 }, + { lable: "هزینه ویزیت", rate: 1 }, + ], doctorsReviews: [ { patientName: "فرزاد", @@ -322,6 +337,11 @@ export const doctorsData: DoctorModel[] = [

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    `, + ratingProgress: [ + { lable: "برخورد مناسب", rate: 5 }, + { lable: "ویزیت به موقع", rate: 4 }, + { lable: "هزینه ویزیت", rate: 2 }, + ], doctorsReviews: [ { patientName: "نیما", @@ -395,6 +415,11 @@ export const doctorsData: DoctorModel[] = [

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    `, + ratingProgress: [ + { lable: "برخورد مناسب", rate: 5 }, + { lable: "ویزیت به موقع", rate: 4 }, + { lable: "هزینه ویزیت", rate: 2 }, + ], doctorsReviews: [ { patientName: "سعید", diff --git a/src/types/doctor.type.ts b/src/types/doctor.type.ts index e4a79ff..b4648b0 100644 --- a/src/types/doctor.type.ts +++ b/src/types/doctor.type.ts @@ -21,6 +21,8 @@ export type DoctorsReviews = { text: string; vote: number; }; + +export type RatingProgress = { lable: string, rate: number } export interface DoctorModel { slug: string; name: string; @@ -40,5 +42,6 @@ export interface DoctorModel { city: City; about: string; activeCounsulate: number; + ratingProgress: RatingProgress[], doctorsReviews: DoctorsReviews[]; } From 46bb3f22d77f49f744877b492b5698579c9133c2 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Sat, 1 Feb 2025 15:23:55 +0330 Subject: [PATCH 39/45] [PRETTIER] update code formating --- .../components/reviews/rating-progress.component.tsx | 9 +++++---- .../[[...slug]]/components/reviews/reviews.component.tsx | 6 +++--- src/types/doctor.type.ts | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx index 092137b..ce2af7f 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx @@ -4,12 +4,13 @@ import { RatingProgress } from "@/types/doctor.type"; import styles from "./rating-progress.module.css"; - type Props = { - ratingProgress:RatingProgress[]; -} + ratingProgress: RatingProgress[]; +}; -const RatingProgressComponent: React.FC = ({ ratingProgress }): ReactElement => { +const RatingProgressComponent: React.FC = ({ + ratingProgress, +}): ReactElement => { return (
    {ratingProgress.map((rating, index) => { diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index 7e54402..c121078 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -21,14 +21,14 @@ type Props = { averageRating: number; totalVotes: number; doctorsReviews: DoctorsReviews[]; - ratingProgress:RatingProgress[]; + ratingProgress: RatingProgress[]; }; const ReviewsComponent: React.FC = ({ averageRating, totalVotes, doctorsReviews, - ratingProgress + ratingProgress, }): ReactNode => { const { filteredReviews } = useContext(ReviewsContext); @@ -52,7 +52,7 @@ const ReviewsComponent: React.FC = ({
    - +
    diff --git a/src/types/doctor.type.ts b/src/types/doctor.type.ts index b4648b0..fdbadb3 100644 --- a/src/types/doctor.type.ts +++ b/src/types/doctor.type.ts @@ -22,7 +22,7 @@ export type DoctorsReviews = { vote: number; }; -export type RatingProgress = { lable: string, rate: number } +export type RatingProgress = { lable: string; rate: number }; export interface DoctorModel { slug: string; name: string; @@ -42,6 +42,6 @@ export interface DoctorModel { city: City; about: string; activeCounsulate: number; - ratingProgress: RatingProgress[], + ratingProgress: RatingProgress[]; doctorsReviews: DoctorsReviews[]; } From fd42be991aea5c3776d8cb15e3e50292a7ca5df7 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Mon, 17 Feb 2025 23:44:45 +0330 Subject: [PATCH 40/45] [UPDATE] fixed code based on codective doc --- .../components/about/about.module.css | 2 +- .../activities/activities.component.tsx | 2 +- .../activities/activities.module.css | 7 +++---- .../components/contact/contact.module.css | 14 +++++++------- .../counsulation/counsulation.component.tsx | 2 +- .../counsulation/counsulation.module.css | 6 +++--- .../components/info/info-card.component.tsx | 8 ++++---- .../components/info/info-card.module.css | 13 +++++-------- .../components/reserve/reserve.module.css | 7 +++---- .../reviews/rating-progress.component.tsx | 2 +- .../reviews/rating-progress.module.css | 16 ++++++++-------- .../reviews/review-item.component.tsx | 2 +- .../components/reviews/review-item.module.css | 19 +++++++++---------- .../components/reviews/reviews.component.tsx | 6 +++--- .../components/reviews/reviews.module.css | 4 ++-- .../filter/clear-all-filter.module.css | 2 +- .../components/item/item.module.css | 16 +++++++--------- .../common/buttons/load-more.module.css | 4 ++-- 18 files changed, 62 insertions(+), 70 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/about/about.module.css b/src/app/doctor/[[...slug]]/components/about/about.module.css index 18977ed..9d0c622 100644 --- a/src/app/doctor/[[...slug]]/components/about/about.module.css +++ b/src/app/doctor/[[...slug]]/components/about/about.module.css @@ -16,7 +16,7 @@ } > *:not(:first-child) { - margin-top: 1rem; + margin-block-start: 1rem; } ol { diff --git a/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx b/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx index dc610e6..587de5a 100644 --- a/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx +++ b/src/app/doctor/[[...slug]]/components/activities/activities.component.tsx @@ -28,7 +28,7 @@ const ActivitiesComponent: React.FC = ({ - {activeCounsulate.toLocaleString("fa-IR")} + {activeCounsulate.toLocaleString()}   مشاوره فعال diff --git a/src/app/doctor/[[...slug]]/components/activities/activities.module.css b/src/app/doctor/[[...slug]]/components/activities/activities.module.css index 0af42c4..cb86181 100644 --- a/src/app/doctor/[[...slug]]/components/activities/activities.module.css +++ b/src/app/doctor/[[...slug]]/components/activities/activities.module.css @@ -11,7 +11,6 @@ .activity { ul li { display: flex; - justify-content: start; align-items: center; gap: 0.5rem; @@ -25,8 +24,8 @@ padding-block: 0.8rem; svg { - width: 1.4rem; - height: 1.4rem; + inline-size: 1.4rem; + block-size: 1.4rem; } .consulation_count { font-weight: 600; @@ -34,7 +33,7 @@ } ul li:not(:first-child) { - margin-top: 0.8rem; + margin-block-start: 0.8rem; } } } diff --git a/src/app/doctor/[[...slug]]/components/contact/contact.module.css b/src/app/doctor/[[...slug]]/components/contact/contact.module.css index 0e2268e..19cefe9 100644 --- a/src/app/doctor/[[...slug]]/components/contact/contact.module.css +++ b/src/app/doctor/[[...slug]]/components/contact/contact.module.css @@ -25,8 +25,8 @@ cursor: pointer; svg { - width: 1rem; - height: 1rem; + inline-size: 1rem; + block-size: 1rem; } } } @@ -40,7 +40,7 @@ strong { display: inline-block; font-size: var(--fz-300); - margin-bottom: 0.3rem; + margin-block-end: 0.3rem; } address { @@ -54,14 +54,14 @@ .action_btn { ul li { - margin-top: 1rem; + margin-block-start: 1rem; font-size: var(--fz-200); font-weight: 600; } button { - width: 100%; + inline-size: 100%; display: flex; justify-content: center; @@ -87,8 +87,8 @@ } svg { - width: 1.4rem; - height: 1.4rem; + inline-size: 1.4rem; + block-size: 1.4rem; } } } diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx index 934f773..eb1566c 100644 --- a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx +++ b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.component.tsx @@ -20,7 +20,7 @@ const CounsulationComponent: React.FC = ({ price }): ReactElement => { همین الان آنلاین ویزیت شوید - {price.toLocaleString("fa-IR")} تومان + {price.toLocaleString()} تومان
    diff --git a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css index 34a325e..ab08ff1 100644 --- a/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css +++ b/src/app/doctor/[[...slug]]/components/counsulation/counsulation.module.css @@ -16,7 +16,7 @@ border-bottom: 1px solid var(--color-gray-90); - padding-bottom: 0.7rem; + padding-block-end: 0.7rem; padding: 1rem; div { @@ -26,8 +26,8 @@ gap: 0.4rem; svg { - width: 1.13rem; - height: 1.13rem; + inline-size: 1.13rem; + block-size: 1.13rem; } } } diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx index 9df775c..db3ba10 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx +++ b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx @@ -46,7 +46,7 @@ const InfoCardComponent: React.FC = ({ - {view.toLocaleString("fa-IR")}K + {view.toLocaleString()}K
    @@ -65,10 +65,10 @@ const InfoCardComponent: React.FC = ({ - {doctorDetails?.averageRating?.toLocaleString("fa-IR")} از{" "} - {maxVote?.toLocaleString("fa-IR")} + {doctorDetails?.averageRating?.toLocaleString()} از{" "} + {maxVote?.toLocaleString()} -  رضایت ({doctorDetails?.totalVotes?.toLocaleString("fa-IR")}{" "} +  رضایت ({doctorDetails?.totalVotes?.toLocaleString()}{" "} نظر) diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.module.css b/src/app/doctor/[[...slug]]/components/info/info-card.module.css index f513928..70ddb2d 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.module.css +++ b/src/app/doctor/[[...slug]]/components/info/info-card.module.css @@ -4,11 +4,10 @@ justify-content: space-between; align-items: center; - margin-bottom: 1rem; + margin-block-end: 1rem; ul { display: flex; - justify-content: start; align-items: center; gap: 0.5rem; @@ -16,7 +15,6 @@ li button { display: flex; - justify-content: start; align-items: center; gap: 0.3rem; @@ -37,8 +35,8 @@ gap: 0.2rem; svg { - width: 1.3rem; - height: 1.3rem; + inline-size: 1.3rem; + block-size: 1.3rem; } } } @@ -46,7 +44,6 @@ .info { display: flex; align-items: center; - justify-content: start; gap: 0.8rem; padding: 1rem; @@ -61,7 +58,7 @@ span { font-size: var(--fz-100); display: inline-block; - margin-top: 1rem; + margin-block-start: 1rem; } } @@ -87,7 +84,7 @@ font-size: var(--fz-200); - margin-top: 2rem; + margin-block-start: 2rem; .ave_rate { background-color: var(--color-success-darker); diff --git a/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css b/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css index 7950274..e56238c 100644 --- a/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css +++ b/src/app/doctor/[[...slug]]/components/reserve/reserve.module.css @@ -8,7 +8,6 @@ .title { display: flex; - justify-content: start; align-items: center; gap: 0.3rem; @@ -17,12 +16,12 @@ border-bottom: 1px solid var(--color-gray-90); - padding-bottom: 0.7rem; + padding-block-end: 0.7rem; padding: 1rem; svg { - width: 1.2rem; - height: 1.2rem; + inline-size: 1.2rem; + block-size: 1.2rem; } } diff --git a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx index ce2af7f..3cdc750 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.component.tsx @@ -24,7 +24,7 @@ const RatingProgressComponent: React.FC = ({ className={styles.progress_fill} > - {rating.rate.toLocaleString("fa-IR")} + {rating.rate.toLocaleString()} ); diff --git a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.module.css b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.module.css index 1c785cb..1ad20e6 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/rating-progress.module.css +++ b/src/app/doctor/[[...slug]]/components/reviews/rating-progress.module.css @@ -1,9 +1,9 @@ .progress_container { - width: 100%; + inline-size: 100%; .progress_lable { display: inline-block; - margin-top: 0.8rem; + margin-block-start: 0.8rem; } .progress_items { @@ -11,14 +11,14 @@ align-items: center; gap: 0.625rem; - margin-top: 0.2rem; + margin-block-start: 0.2rem; > div { position: relative; - width: 100%; + inline-size: 100%; - height: 0.5rem; + block-size: 0.5rem; background-color: var(--color-gray-90); @@ -28,10 +28,10 @@ .progress_fill { position: absolute; - top: 0; - right: 0; + inset-block-start: 0; + inset-inline-start: 0; - height: 100%; + block-size: 100%; background-color: var(--color-success-darker); diff --git a/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx index a15ae7b..cd795db 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx @@ -45,7 +45,7 @@ const ReviewItemComponent: React.FC = ({ review }): ReactElement => {
    - {review?.vote.toLocaleString("fa-IR")} + {review?.vote.toLocaleString()}
    diff --git a/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css b/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css index 32daeb0..dca86a1 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css +++ b/src/app/doctor/[[...slug]]/components/reviews/review-item.module.css @@ -1,6 +1,6 @@ .container { > *:not(:first-child) { - margin-top: 1.5rem; + margin-block-start: 1.5rem; } .user_info { @@ -15,8 +15,8 @@ justify-content: center; align-items: center; - width: 2.2rem; - height: 2.2rem; + inline-size: 2.2rem; + block-size: 2.2rem; font-size: var(--fz-300); @@ -36,19 +36,18 @@ cursor: pointer; - width: 2rem; - height: 2rem; + inline-size: 2rem; + block-size: 2rem; svg { - width: 1.3rem; - height: 1.3rem; + inline-size: 1.3rem; + block-size: 1.3rem; } } } .owner { display: flex; - justify-content: start; align-items: center; gap: 0.5rem; @@ -132,8 +131,8 @@ cursor: pointer; svg { - width: 1.2rem; - height: 1.2rem; + inline-size: 1.2rem; + block-size: 1.2rem; } } } diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index c121078..9702de7 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -45,10 +45,10 @@ const ReviewsComponent: React.FC = ({
    - {averageRating.toLocaleString("fa-IR")} از{" "} - {maxVote?.toLocaleString("fa-IR")} + {averageRating.toLocaleString()} از{" "} + {maxVote?.toLocaleString()} -  رضایت ({totalVotes.toLocaleString("fa-IR")} نظر) +  رضایت ({totalVotes.toLocaleString()} نظر)
    diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css index 8e40770..7ba1307 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.module.css @@ -28,9 +28,9 @@ } .card > *:not(:first-child):not(:last-child) { - margin-top: 2rem; + margin-block-start: 2rem; - padding-top: 2rem; + padding-block-start: 2rem; border-top: 1px solid var(--color-gray-90); } diff --git a/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css b/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css index 931d364..22476fa 100644 --- a/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css +++ b/src/app/doctors/[[...slug]]/components/filter/clear-all-filter.module.css @@ -1,5 +1,5 @@ .clear { - width: 100%; + inline-size: 100%; border-radius: var(--border-radius); diff --git a/src/app/doctors/[[...slug]]/components/item/item.module.css b/src/app/doctors/[[...slug]]/components/item/item.module.css index e10f438..1e7fc9c 100644 --- a/src/app/doctors/[[...slug]]/components/item/item.module.css +++ b/src/app/doctors/[[...slug]]/components/item/item.module.css @@ -2,7 +2,7 @@ position: relative; padding: 1rem; - height: auto; + block-size: auto; background-color: var(--color-surface-700); box-shadow: var(--shadow-400); @@ -11,7 +11,6 @@ .info { display: flex; - justify-content: start; align-items: start; gap: 0.8rem; } @@ -21,7 +20,7 @@ } .brief { - margin-top: 0.2rem; + margin-block-start: 0.2rem; font-size: var(--fz-200); } @@ -32,31 +31,30 @@ background-color: var(--color-surface-300); - width: fit-content; + inline-size: fit-content; padding-block: 0.1rem; padding-inline: 0.2rem; - margin-top: 0.4rem; + margin-block-start: 0.4rem; border-radius: 0.2rem; font-size: var(--fz-100); .star { color: var(--color-star); - margin-top: 2px; + margin-block-start: 2px; } } .badge { display: flex; - justify-content: start; gap: 0.4rem; margin-block-start: 2rem; .badge_item { background-color: var(--color-surface-400); - width: fit-content; + inline-size: fit-content; font-size: var(--fz-100); @@ -81,7 +79,7 @@ svg { flex-shrink: 0; - margin-top: 0.25rem; + margin-block-start: 0.25rem; } } } diff --git a/src/components/common/buttons/load-more.module.css b/src/components/common/buttons/load-more.module.css index bca3859..e5ab878 100644 --- a/src/components/common/buttons/load-more.module.css +++ b/src/components/common/buttons/load-more.module.css @@ -1,5 +1,5 @@ .btn { - width: 100%; + inline-size: 100%; background-color: inherit; @@ -11,7 +11,7 @@ border-radius: var(--border-radius); - margin-top: 2rem; + margin-block-start: 2rem; padding-block: 0.8rem; From 5de72f450f361a7a5488547ddc03a2e823642926 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Mon, 17 Feb 2025 23:45:31 +0330 Subject: [PATCH 41/45] [UPDATE] set persian number --- src/app/globals.css | 2 ++ src/app/layout.tsx | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/app/globals.css b/src/app/globals.css index 20de04a..cb1b19c 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -68,6 +68,8 @@ html { color-scheme: light; + font-family: "Vazirmatn", system-ui; + font-feature-settings: "ss01"; accent-color: var(--color-primary); caret-color: var(--color-primary); } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index fb00c97..d24f547 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -12,6 +12,7 @@ import "./globals.css"; const vazirmatn = Vazirmatn({ subsets: ["latin", "arabic"], display: "swap", + variable:"--vazir-font", }); export const metadata: Metadata = { @@ -25,7 +26,7 @@ export default function RootLayout({ children: React.ReactNode; }>): ReactElement { return ( - +
    {children}
    From ff72b85ca86b3cc4c79189d84eabb3dca33f8aaa Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Mon, 17 Feb 2025 23:47:50 +0330 Subject: [PATCH 42/45] [PRETTIER] fixed format --- .../[[...slug]]/components/info/info-card.component.tsx | 3 +-- .../[[...slug]]/components/reviews/review-item.component.tsx | 4 +--- .../[[...slug]]/components/reviews/reviews.component.tsx | 3 +-- src/app/layout.tsx | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx index db3ba10..64508ac 100644 --- a/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx +++ b/src/app/doctor/[[...slug]]/components/info/info-card.component.tsx @@ -68,8 +68,7 @@ const InfoCardComponent: React.FC = ({ {doctorDetails?.averageRating?.toLocaleString()} از{" "} {maxVote?.toLocaleString()} -  رضایت ({doctorDetails?.totalVotes?.toLocaleString()}{" "} - نظر) +  رضایت ({doctorDetails?.totalVotes?.toLocaleString()} نظر)
    diff --git a/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx index cd795db..8d2782e 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/review-item.component.tsx @@ -44,9 +44,7 @@ const ReviewItemComponent: React.FC = ({ review }): ReactElement => {
    - - {review?.vote.toLocaleString()} - + {review?.vote.toLocaleString()}
    diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index 9702de7..80a2278 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -45,8 +45,7 @@ const ReviewsComponent: React.FC = ({
    - {averageRating.toLocaleString()} از{" "} - {maxVote?.toLocaleString()} + {averageRating.toLocaleString()} از {maxVote?.toLocaleString()}  رضایت ({totalVotes.toLocaleString()} نظر)
    diff --git a/src/app/layout.tsx b/src/app/layout.tsx index d24f547..d736e14 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -12,7 +12,7 @@ import "./globals.css"; const vazirmatn = Vazirmatn({ subsets: ["latin", "arabic"], display: "swap", - variable:"--vazir-font", + variable: "--vazir-font", }); export const metadata: Metadata = { From 0704568984ac663d239b469540914b0de6f3cb09 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Tue, 18 Feb 2025 23:07:57 +0330 Subject: [PATCH 43/45] [UPDATE] replace google font with locale font --- src/app/globals.css | 3 +- src/app/layout.tsx | 61 +++++++++++++++--- .../fonts/vazirmatn/Vazirmatn-FD-Black.woff2 | Bin 0 -> 49100 bytes .../fonts/vazirmatn/Vazirmatn-FD-Bold.woff2 | Bin 0 -> 49868 bytes .../vazirmatn/Vazirmatn-FD-ExtraBold.woff2 | Bin 0 -> 49628 bytes .../vazirmatn/Vazirmatn-FD-ExtraLight.woff2 | Bin 0 -> 49816 bytes .../fonts/vazirmatn/Vazirmatn-FD-Light.woff2 | Bin 0 -> 49712 bytes .../fonts/vazirmatn/Vazirmatn-FD-Medium.woff2 | Bin 0 -> 49784 bytes .../vazirmatn/Vazirmatn-FD-Regular.woff2 | Bin 0 -> 49044 bytes .../vazirmatn/Vazirmatn-FD-SemiBold.woff2 | Bin 0 -> 49608 bytes .../fonts/vazirmatn/Vazirmatn-FD-Thin.woff2 | Bin 0 -> 49556 bytes 11 files changed, 54 insertions(+), 10 deletions(-) create mode 100644 src/public/fonts/vazirmatn/Vazirmatn-FD-Black.woff2 create mode 100644 src/public/fonts/vazirmatn/Vazirmatn-FD-Bold.woff2 create mode 100644 src/public/fonts/vazirmatn/Vazirmatn-FD-ExtraBold.woff2 create mode 100644 src/public/fonts/vazirmatn/Vazirmatn-FD-ExtraLight.woff2 create mode 100644 src/public/fonts/vazirmatn/Vazirmatn-FD-Light.woff2 create mode 100644 src/public/fonts/vazirmatn/Vazirmatn-FD-Medium.woff2 create mode 100644 src/public/fonts/vazirmatn/Vazirmatn-FD-Regular.woff2 create mode 100644 src/public/fonts/vazirmatn/Vazirmatn-FD-SemiBold.woff2 create mode 100644 src/public/fonts/vazirmatn/Vazirmatn-FD-Thin.woff2 diff --git a/src/app/globals.css b/src/app/globals.css index cb1b19c..f5d2954 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -68,8 +68,7 @@ html { color-scheme: light; - font-family: "Vazirmatn", system-ui; - font-feature-settings: "ss01"; + font-family: var(--font-vazirmatn), system-ui, sans-serif; accent-color: var(--color-primary); caret-color: var(--color-primary); } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index d736e14..4b544ab 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,7 +1,7 @@ import { ReactElement } from "react"; import type { Metadata } from "next"; -import { Vazirmatn } from "next/font/google"; +import localFont from "next/font/local"; import FooterComponent from "@/components/footer/footer.component"; import HeaderComponent from "@/components/header/header.component"; @@ -9,24 +9,69 @@ import HeaderComponent from "@/components/header/header.component"; import "@/styles/typography.css"; import "./globals.css"; -const vazirmatn = Vazirmatn({ - subsets: ["latin", "arabic"], - display: "swap", - variable: "--vazir-font", -}); - export const metadata: Metadata = { title: "دکتر من", description: "پلتفرم جامع جستجوی دکتر و رزرو نوبت آنلاین", }; +const vazirmatn_FD = localFont({ + src: [ + { + path: "../public/fonts/vazirmatn/Vazirmatn-FD-Thin.woff2", + weight: '100', + style: 'normal', + }, + { + path: "../public/fonts/vazirmatn/Vazirmatn-FD-ExtraLight.woff2", + weight: '200', + style: 'normal' + }, + { + path: "../public/fonts/vazirmatn/Vazirmatn-FD-Light.woff2", + weight: '300', + style: 'normal' + }, + { + path: "../public/fonts/vazirmatn/Vazirmatn-FD-Regular.woff2", + weight: '400', + style: 'normal' + }, + { + path: "../public/fonts/vazirmatn/Vazirmatn-FD-Medium.woff2", + weight: '500', + style: 'normal' + }, + { + path: "../public/fonts/vazirmatn/Vazirmatn-FD-SemiBold.woff2", + weight: '600', + style: 'normal' + }, + { + path: "../public/fonts/vazirmatn/Vazirmatn-FD-Bold.woff2", + weight: '700', + style: 'normal' + }, + { + path: "../public/fonts/vazirmatn/Vazirmatn-FD-ExtraBold.woff2", + weight: '800', + style: 'normal' + }, + { + path: "../public/fonts/vazirmatn/Vazirmatn-FD-Black.woff2", + weight: '900', + style: 'normal' + }, + ], + variable: "--font-vazirmatn" +}); + export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>): ReactElement { return ( - +
    {children}
    diff --git a/src/public/fonts/vazirmatn/Vazirmatn-FD-Black.woff2 b/src/public/fonts/vazirmatn/Vazirmatn-FD-Black.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..251a923798c05bba1b92e32384aa661107c08297 GIT binary patch literal 49100 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ħs{*VWKgW489+}Sdd;z6#G-uUP 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

    6zLc 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 Vgpn`7`05}Wgn^FX`~UMhsdLQkamfGx literal 0 HcmV?d00001 diff --git a/src/public/fonts/vazirmatn/Vazirmatn-FD-ExtraBold.woff2 b/src/public/fonts/vazirmatn/Vazirmatn-FD-ExtraBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e2b2d3172756bc49e7470d610d6e40077d858e23 GIT binary patch literal 49628 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­RY$k_~-IZ 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 PC}{Ej@83F2j*$TX9%fA| literal 0 HcmV?d00001 diff --git a/src/public/fonts/vazirmatn/Vazirmatn-FD-ExtraLight.woff2 b/src/public/fonts/vazirmatn/Vazirmatn-FD-ExtraLight.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d019c922782a349365392123294c491933f6ef9f GIT binary patch literal 49816 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 Q5&!`R;0iwcKPOX*22(E@yZ`_I literal 0 HcmV?d00001 diff --git a/src/public/fonts/vazirmatn/Vazirmatn-FD-Regular.woff2 b/src/public/fonts/vazirmatn/Vazirmatn-FD-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ac7cff8f31b10cfa5a2e03edda17be64142af2cb GIT binary patch literal 49044 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⪼@I0S#VJs^4?=y|Z98`+_FJUXI>vpCSj~(x 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

    DnSJ#ns^e_@=ig!R`+vflMB^i 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 literal 0 HcmV?d00001 diff --git a/src/public/fonts/vazirmatn/Vazirmatn-FD-SemiBold.woff2 b/src/public/fonts/vazirmatn/Vazirmatn-FD-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..359e57e3ac025a1cd159a6bbf8ca02fa2528d116 GIT binary patch literal 49608 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

    >-mTS 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ⅇ+jzi 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 Date: Tue, 18 Feb 2025 23:09:07 +0330 Subject: [PATCH 44/45] [PRETTIER] fixed code format --- src/app/layout.tsx | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 4b544ab..bf70ef8 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -18,51 +18,51 @@ const vazirmatn_FD = localFont({ src: [ { path: "../public/fonts/vazirmatn/Vazirmatn-FD-Thin.woff2", - weight: '100', - style: 'normal', + weight: "100", + style: "normal", }, { path: "../public/fonts/vazirmatn/Vazirmatn-FD-ExtraLight.woff2", - weight: '200', - style: 'normal' + weight: "200", + style: "normal", }, { path: "../public/fonts/vazirmatn/Vazirmatn-FD-Light.woff2", - weight: '300', - style: 'normal' + weight: "300", + style: "normal", }, { path: "../public/fonts/vazirmatn/Vazirmatn-FD-Regular.woff2", - weight: '400', - style: 'normal' + weight: "400", + style: "normal", }, { path: "../public/fonts/vazirmatn/Vazirmatn-FD-Medium.woff2", - weight: '500', - style: 'normal' + weight: "500", + style: "normal", }, { path: "../public/fonts/vazirmatn/Vazirmatn-FD-SemiBold.woff2", - weight: '600', - style: 'normal' + weight: "600", + style: "normal", }, { path: "../public/fonts/vazirmatn/Vazirmatn-FD-Bold.woff2", - weight: '700', - style: 'normal' + weight: "700", + style: "normal", }, { path: "../public/fonts/vazirmatn/Vazirmatn-FD-ExtraBold.woff2", - weight: '800', - style: 'normal' + weight: "800", + style: "normal", }, { path: "../public/fonts/vazirmatn/Vazirmatn-FD-Black.woff2", - weight: '900', - style: 'normal' + weight: "900", + style: "normal", }, ], - variable: "--font-vazirmatn" + variable: "--font-vazirmatn", }); export default function RootLayout({ From d96781320abe06533a6a844d9f16f9724b806648 Mon Sep 17 00:00:00 2001 From: Alireza Dorrani Date: Sat, 1 Mar 2025 21:34:40 +0330 Subject: [PATCH 45/45] [FIXED] fixed and improved doctor page --- next.config.mjs | 4 - package-lock.json | 15 ++ package.json | 1 + .../components/about/about.component.tsx | 8 +- .../components/about/about.module.css | 2 +- .../activities/activities.module.css | 6 +- .../characteristics.component.tsx | 40 +++++ .../characteristics.module.css | 41 +++++ .../components/reviews/reviews.component.tsx | 4 +- .../services/services.component.tsx | 40 +++++ .../components/services/services.module.css | 41 +++++ src/app/doctor/[[...slug]]/page.tsx | 29 +++- .../filter-button/filter-button.module.css | 1 - src/icons/MingcuteAIFill.tsx | 21 +++ src/icons/MingcuteAddCircleFill.tsx | 21 +++ src/models/doctors.ts | 158 ++++++------------ src/types/doctor.type.ts | 2 + 17 files changed, 314 insertions(+), 120 deletions(-) create mode 100644 src/app/doctor/[[...slug]]/components/characteristics/characteristics.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/characteristics/characteristics.module.css create mode 100644 src/app/doctor/[[...slug]]/components/services/services.component.tsx create mode 100644 src/app/doctor/[[...slug]]/components/services/services.module.css create mode 100644 src/icons/MingcuteAIFill.tsx create mode 100644 src/icons/MingcuteAddCircleFill.tsx diff --git a/next.config.mjs b/next.config.mjs index ac526ca..9a17e2c 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -8,10 +8,6 @@ const nextConfig = { }, ], }, - - // images: { - // domains: ['assets.acme.com'], - // }, }; export default nextConfig; diff --git a/package-lock.json b/package-lock.json index 01a03fd..923df7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "clsx": "^2.1.1", + "dompurify": "^3.2.4", "next": "14.2.20", "react": "^18", "react-dom": "^18", @@ -828,6 +829,12 @@ "@types/react": "^18.0.0" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "optional": true + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz", @@ -1659,6 +1666,14 @@ "node": ">=6.0.0" } }, + "node_modules/dompurify": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/dunder-proto": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.0.tgz", diff --git a/package.json b/package.json index c476a36..47af989 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ }, "dependencies": { "clsx": "^2.1.1", + "dompurify": "^3.2.4", "next": "14.2.20", "react": "^18", "react-dom": "^18", diff --git a/src/app/doctor/[[...slug]]/components/about/about.component.tsx b/src/app/doctor/[[...slug]]/components/about/about.component.tsx index 22fdfe0..0b1f1f8 100644 --- a/src/app/doctor/[[...slug]]/components/about/about.component.tsx +++ b/src/app/doctor/[[...slug]]/components/about/about.component.tsx @@ -1,5 +1,9 @@ +"use client"; + import { ReactNode } from "react"; +import DOMPurify from "dompurify"; + import CardComponent from "@/components/card/card.component"; import styles from "./about.module.css"; @@ -9,6 +13,8 @@ type Props = { }; const AboutComponent: React.FC = ({ aboutText }): ReactNode => { + const sanitizedHTML = DOMPurify.sanitize(aboutText ?? ""); + return (

    @@ -16,7 +22,7 @@ const AboutComponent: React.FC = ({ aboutText }): ReactNode => {
    diff --git a/src/app/doctor/[[...slug]]/components/about/about.module.css b/src/app/doctor/[[...slug]]/components/about/about.module.css index 9d0c622..2f7b68e 100644 --- a/src/app/doctor/[[...slug]]/components/about/about.module.css +++ b/src/app/doctor/[[...slug]]/components/about/about.module.css @@ -20,7 +20,7 @@ } ol { - margin-inline-start: 1.8rem; + margin-inline-start: 2rem; } } } diff --git a/src/app/doctor/[[...slug]]/components/activities/activities.module.css b/src/app/doctor/[[...slug]]/components/activities/activities.module.css index cb86181..c336640 100644 --- a/src/app/doctor/[[...slug]]/components/activities/activities.module.css +++ b/src/app/doctor/[[...slug]]/components/activities/activities.module.css @@ -21,11 +21,11 @@ border-radius: var(--border-radius); padding-inline: 1rem; - padding-block: 0.8rem; + padding-block: 1rem; svg { - inline-size: 1.4rem; - block-size: 1.4rem; + inline-size: 1.5rem; + block-size: 1.5rem; } .consulation_count { font-weight: 600; diff --git a/src/app/doctor/[[...slug]]/components/characteristics/characteristics.component.tsx b/src/app/doctor/[[...slug]]/components/characteristics/characteristics.component.tsx new file mode 100644 index 0000000..59f644b --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/characteristics/characteristics.component.tsx @@ -0,0 +1,40 @@ +import { ReactElement } from "react"; + +import CardComponent from "@/components/card/card.component"; +import { MingcuteAIFill } from "@/icons/MingcuteAIFill"; + +import styles from "./characteristics.module.css"; + +type Props = { + doctorName: string; + characteristics: string[]; +}; + +const CharacteristicsComponent: React.FC = ({ + doctorName, + characteristics, +}): ReactElement => { + return ( +
    +
    +

    ویژگی‌های دکتر {doctorName}

    +
    + +
    +
      + {characteristics?.map((characteristic, index) => { + return ( +
    • + + {characteristic} +
    • + ); + })} +
    +
    +
    +
    + ); +}; + +export default CharacteristicsComponent; diff --git a/src/app/doctor/[[...slug]]/components/characteristics/characteristics.module.css b/src/app/doctor/[[...slug]]/components/characteristics/characteristics.module.css new file mode 100644 index 0000000..87171e2 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/characteristics/characteristics.module.css @@ -0,0 +1,41 @@ +.characteristics { + display: grid; + gap: 1rem; + + .title { + h2 { + font-size: var(--fz-300); + } + } + + .characteristics-item { + ul { + border-right: 2px dotted var(--color-gray-80); + + padding-inline-start: 0.75rem; + + font-size: var(--fz-200); + line-height: 1.5rem; + + li { + display: flex; + align-items: center; + gap: 0.5rem; + + svg { + inline-size: 1rem; + block-size: 1rem; + } + } + + li span { + font-weight: 600; + font-size: var(--fz-300); + } + } + + ul li:not(:first-child) { + margin-block-start: 0.5rem; + } + } +} diff --git a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx index 80a2278..ae5ef77 100644 --- a/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx +++ b/src/app/doctor/[[...slug]]/components/reviews/reviews.component.tsx @@ -18,6 +18,7 @@ import styles from "./reviews.module.css"; const maxVote = 5; type Props = { + doctorName: string; averageRating: number; totalVotes: number; doctorsReviews: DoctorsReviews[]; @@ -25,6 +26,7 @@ type Props = { }; const ReviewsComponent: React.FC = ({ + doctorName, averageRating, totalVotes, doctorsReviews, @@ -38,7 +40,7 @@ const ReviewsComponent: React.FC = ({

    نظرات در مورد دکتر   - معصومه دلجو + {doctorName}

    diff --git a/src/app/doctor/[[...slug]]/components/services/services.component.tsx b/src/app/doctor/[[...slug]]/components/services/services.component.tsx new file mode 100644 index 0000000..9dc9b68 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/services/services.component.tsx @@ -0,0 +1,40 @@ +import { ReactElement } from "react"; + +import CardComponent from "@/components/card/card.component"; +import { MingcuteAddCircleFill } from "@/icons/MingcuteAddCircleFill"; + +import styles from "./services.module.css"; + +type Props = { + doctorName: string; + services: string[]; +}; + +const ServicesComponent: React.FC = ({ + doctorName, + services, +}): ReactElement => { + return ( +
    +
    +

    خدمات دکتر {doctorName}

    +
    + +
    +
      + {services?.map((service, index) => { + return ( +
    • + + {service} +
    • + ); + })} +
    +
    +
    +
    + ); +}; + +export default ServicesComponent; diff --git a/src/app/doctor/[[...slug]]/components/services/services.module.css b/src/app/doctor/[[...slug]]/components/services/services.module.css new file mode 100644 index 0000000..e20c067 --- /dev/null +++ b/src/app/doctor/[[...slug]]/components/services/services.module.css @@ -0,0 +1,41 @@ +.services { + display: grid; + gap: 1rem; + + .title { + h2 { + font-size: var(--fz-300); + } + } + + .services-item { + ul { + border-right: 2px dotted var(--color-gray-80); + + padding-inline-start: 0.75rem; + + font-size: var(--fz-200); + line-height: 1.5rem; + + li { + display: flex; + align-items: center; + gap: 0.5rem; + + svg { + inline-size: 1rem; + block-size: 1rem; + } + } + + li span { + font-weight: 600; + font-size: var(--fz-300); + } + } + + ul li:not(:first-child) { + margin-block-start: 0.5rem; + } + } +} diff --git a/src/app/doctor/[[...slug]]/page.tsx b/src/app/doctor/[[...slug]]/page.tsx index 93d6101..79a15fa 100644 --- a/src/app/doctor/[[...slug]]/page.tsx +++ b/src/app/doctor/[[...slug]]/page.tsx @@ -2,17 +2,19 @@ import { ReactElement } from "react"; import { notFound } from "next/navigation"; -import ReviewsWrapperComponent from "./components/reviews/reviews-wrapper-component"; -import InfoCardComponent from "./components/info/info-card.component"; import AboutComponent from "./components/about/about.component"; -import ReserveComponent from "./components/reserve/reserve.component"; +import ActivitiesComponent from "./components/activities/activities.component"; +import CharacteristicsComponent from "./components/characteristics/characteristics.component"; import ContactComponent from "./components/contact/contact.component"; -import ReviewsComponent from "./components/reviews/reviews.component"; import CounsulationComponent from "./components/counsulation/counsulation.component"; -import ActivitiesComponent from "./components/activities/activities.component"; +import InfoCardComponent from "./components/info/info-card.component"; +import ReserveComponent from "./components/reserve/reserve.component"; +import ReviewsWrapperComponent from "./components/reviews/reviews-wrapper-component"; +import ReviewsComponent from "./components/reviews/reviews.component"; +import ServicesComponent from "./components/services/services.component"; -import { DoctorModel } from "@/types/doctor.type"; import { doctorsData } from "@/models/doctors"; +import { DoctorModel } from "@/types/doctor.type"; import styles from "./page.module.css"; @@ -55,11 +57,26 @@ const DoctorPage: React.FC = ({ params }): ReactElement => { />
    +
    + +
    + +
    + +
    +
    ) { + return ( + + + + + + + ); +} diff --git a/src/icons/MingcuteAddCircleFill.tsx b/src/icons/MingcuteAddCircleFill.tsx new file mode 100644 index 0000000..57484ed --- /dev/null +++ b/src/icons/MingcuteAddCircleFill.tsx @@ -0,0 +1,21 @@ +import { SVGProps } from "react"; + +export function MingcuteAddCircleFill(props: SVGProps) { + return ( + + + + + + + ); +} diff --git a/src/models/doctors.ts b/src/models/doctors.ts index bdbad9f..1f5fef9 100644 --- a/src/models/doctors.ts +++ b/src/models/doctors.ts @@ -40,49 +40,6 @@ export const doctorsData: DoctorModel[] = [

    دکتر پوراندخت جعفري یکی از متخصصان برجسته در زمینه پزشکی داخلی است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    -

    ویژگی‌های دکتر پوراندخت جعفری:

    - -
      -
    • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
    • -
    • تحصیلات: دکترای پزشکی از دانشگاه تهران.
    • -
    • تخصص: درمان بیماری‌های مزمن و پیچیده.
    • -
    - -

    خدمات ارائه شده:

    -
      -
    1. معاینه و تشخیص بیماری‌ها
    2. -
    3. تجویز داروهای مناسب
    4. -
    5. برنامه‌ریزی درمانی شخصی‌سازی شده
    6. -
    - -

    آمار و ارقام

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    سالتعداد بیماران درمان شدهنرخ رضایت بیماران
    202115090%
    202220092%
    202325095%
    -

    برای اطلاعات بیشتر می‌توانید با پزشک تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    @@ -109,6 +66,17 @@ export const doctorsData: DoctorModel[] = [ vote: 4, }, ], + services: [ + "معاینه و تشخیص بیماری‌ها", + "مشاوره در زمینه پیشگیری از بیماری‌های قلبی", + "ارائه برنامه درمانی شخصی‌سازی‌شده", + "انجام تست‌های تشخیصی مانند نوار قلب و اکوکاردیوگرافی", + ], + characteristics: [ + "تجربه بالا در تشخیص و درمان بیماری‌ها", + "توانایی درمان بیماری‌های مزمن و پیشرفته", + "توانایی برقراری ارتباط مؤثر و انسانی با بیماران", + ], }, { slug: "88f9", @@ -148,21 +116,6 @@ export const doctorsData: DoctorModel[] = [ about: `

    دکتر مجتبی قدسی یکی از متخصصان برجسته در زمینه بیماری‌های کودکان است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    - -

    ویژگی‌های پزشک:

    - -
      -
    • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
    • -
    • تحصیلات: دکترای پزشکی از دانشگاه تهران.
    • -
    • تخصص: درمان بیماری‌های مزمن و پیچیده.
    • -
    - -

    خدمات ارائه شده:

    -
      -
    1. معاینه و تشخیص بیماری‌ها
    2. -
    3. تجویز داروهای مناسب
    4. -
    5. برنامه‌ریزی درمانی شخصی‌سازی شده
    6. -

    برای اطلاعات بیشتر می‌توانید با دکتر مجتبی قدسی تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    @@ -197,6 +150,17 @@ export const doctorsData: DoctorModel[] = [ vote: 4, }, ], + services: [ + "معاینه و تشخیص بیماری‌ها", + "مشاوره در زمینه پیشگیری از بیماری‌های قلبی", + "ارائه برنامه درمانی شخصی‌سازی‌شده", + "انجام تست‌های تشخیصی مانند نوار قلب و اکوکاردیوگرافی", + ], + characteristics: [ + "تجربه بالا در تشخیص و درمان بیماری‌ها", + "توانایی درمان بیماری‌های مزمن و پیشرفته", + "توانایی برقراری ارتباط مؤثر و انسانی با بیماران", + ], }, { slug: "406c", @@ -235,21 +199,6 @@ export const doctorsData: DoctorModel[] = [ about: `

    دکتر امیرحسین پورداود یکی از متخصصان برجسته در زمینه بیماری‌های پوست است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    - -

    ویژگی‌های پزشک:

    - -
      -
    • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
    • -
    • تحصیلات: دکترای پزشکی از دانشگاه تهران.
    • -
    • تخصص: درمان بیماری‌های مزمن و پیچیده.
    • -
    - -

    خدمات ارائه شده:

    -
      -
    1. معاینه و تشخیص بیماری‌ها
    2. -
    3. تجویز داروهای مناسب
    4. -
    5. برنامه‌ریزی درمانی شخصی‌سازی شده
    6. -

    برای اطلاعات بیشتر می‌توانید با دکتر امیرحسین پورداود تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    @@ -277,6 +226,17 @@ export const doctorsData: DoctorModel[] = [ vote: 4, }, ], + services: [ + "معاینه و تشخیص بیماری‌ها", + "مشاوره در زمینه پیشگیری از بیماری‌های قلبی", + "ارائه برنامه درمانی شخصی‌سازی‌شده", + "انجام تست‌های تشخیصی مانند نوار قلب و اکوکاردیوگرافی", + ], + characteristics: [ + "تجربه بالا در تشخیص و درمان بیماری‌ها", + "توانایی درمان بیماری‌های مزمن و پیشرفته", + "توانایی برقراری ارتباط مؤثر و انسانی با بیماران", + ], }, { slug: "160d", @@ -317,21 +277,6 @@ export const doctorsData: DoctorModel[] = [

    دکتر اعظم قهساره یکی از متخصصان برجسته در زمینه چشم است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    -

    ویژگی‌های پزشک:

    - -
      -
    • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
    • -
    • تحصیلات: دکترای پزشکی از دانشگاه تهران.
    • -
    • تخصص: درمان بیماری‌های مزمن و پیچیده.
    • -
    - -

    خدمات ارائه شده:

    -
      -
    1. معاینه و تشخیص بیماری‌ها
    2. -
    3. تجویز داروهای مناسب
    4. -
    5. برنامه‌ریزی درمانی شخصی‌سازی شده
    6. -
    -

    برای اطلاعات بیشتر می‌توانید با دکتر اعظم قهساره تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    @@ -351,6 +296,17 @@ export const doctorsData: DoctorModel[] = [ vote: 5, }, ], + services: [ + "معاینه و تشخیص بیماری‌ها", + "مشاوره در زمینه پیشگیری از بیماری‌های قلبی", + "ارائه برنامه درمانی شخصی‌سازی‌شده", + "انجام تست‌های تشخیصی مانند نوار قلب و اکوکاردیوگرافی", + ], + characteristics: [ + "تجربه بالا در تشخیص و درمان بیماری‌ها", + "توانایی درمان بیماری‌های مزمن و پیشرفته", + "توانایی برقراری ارتباط مؤثر و انسانی با بیماران", + ], }, { slug: "4c81", @@ -395,21 +351,6 @@ export const doctorsData: DoctorModel[] = [

    دکتر رضا پورعلی یکی از متخصصان برجسته در زمینه بیماری‌های قلب و عروق است. او دارای تجربه‌ای گسترده در درمان بیماری‌های مختلف می‌باشد.

    -

    ویژگی‌های پزشک:

    - -
      -
    • تجربه: بیش از 10 سال فعالیت در حوزه پزشکی.
    • -
    • تحصیلات: دکترای پزشکی از دانشگاه تهران.
    • -
    • تخصص: درمان بیماری‌های مزمن و پیچیده.
    • -
    - -

    خدمات ارائه شده:

    -
      -
    1. معاینه و تشخیص بیماری‌ها
    2. -
    3. تجویز داروهای مناسب
    4. -
    5. برنامه‌ریزی درمانی شخصی‌سازی شده
    6. -
    -

    برای اطلاعات بیشتر می‌توانید با دکتر رضا پورعلی تماس بگیرید. همچنین، می‌توانید از تجربیات دیگر بیماران بهره‌مند شوید.

    توجه: همیشه قبل از شروع هر نوع درمانی با پزشک خود مشورت کنید.

    @@ -436,5 +377,16 @@ export const doctorsData: DoctorModel[] = [ vote: 4, }, ], + services: [ + "معاینه و تشخیص بیماری‌ها", + "مشاوره در زمینه پیشگیری از بیماری‌های قلبی", + "ارائه برنامه درمانی شخصی‌سازی‌شده", + "انجام تست‌های تشخیصی مانند نوار قلب و اکوکاردیوگرافی", + ], + characteristics: [ + "تجربه بالا در تشخیص و درمان بیماری‌ها", + "توانایی درمان بیماری‌های مزمن و پیشرفته", + "توانایی برقراری ارتباط مؤثر و انسانی با بیماران", + ], }, ]; diff --git a/src/types/doctor.type.ts b/src/types/doctor.type.ts index fdbadb3..05da686 100644 --- a/src/types/doctor.type.ts +++ b/src/types/doctor.type.ts @@ -44,4 +44,6 @@ export interface DoctorModel { activeCounsulate: number; ratingProgress: RatingProgress[]; doctorsReviews: DoctorsReviews[]; + services: string[]; + characteristics: string[]; }