diff --git a/app/component/DoctorAvatar.js b/app/component/DoctorAvatar.js new file mode 100644 index 0000000..7f29d44 --- /dev/null +++ b/app/component/DoctorAvatar.js @@ -0,0 +1,38 @@ +import Image from "next/image"; +import { imageUrl } from "@/helper"; + +function getInitials(name) { + if (!name) return ""; + const parts = name.trim().split(/\s+/).filter(Boolean); + if (parts.length === 0) return ""; + if (parts.length === 1) return parts[0][0]; + return `${parts[0][0]}${parts[1][0]}`; +} + +function DoctorAvatar({ doctor, size = 72, className = "", priority = false }) { + const url = doctor?.img?.[0]?.url; + + if (!url) { + return ( +
+ {getInitials(doctor?.name)} +
+ ); + } + + return ( + image-doctor + ); +} + +export default DoctorAvatar; diff --git a/app/component/ItemDoctor.js b/app/component/ItemDoctor.js index 6822ffa..0a4bca5 100644 --- a/app/component/ItemDoctor.js +++ b/app/component/ItemDoctor.js @@ -1,11 +1,10 @@ import { memo } from "react"; -import Image from "next/image"; import { Button } from "@mui/material"; import Link from "next/link"; import CustomLoading from "./loading/Custom"; import TextLoading from "./loading/Text"; import CircularLoading from "./loading/Circular"; -import { imageUrl } from "@/helper"; +import DoctorAvatar from "./DoctorAvatar"; // Icons import ArrowLeftD from "@/components/icons/ArrowLeftD"; @@ -29,12 +28,10 @@ function ItemDoctor({ doctor, loading, setDoctors, priority = false }) { {/* Detail Doctor */}
- image-doctor diff --git a/components/appointment/information/Head.js b/components/appointment/information/Head.js index efcf52b..2e86c01 100644 --- a/components/appointment/information/Head.js +++ b/components/appointment/information/Head.js @@ -1,10 +1,6 @@ -import Image from "next/image"; -import { imageUrl } from "@/helper"; +import DoctorAvatar from "@/app/component/DoctorAvatar"; function Head({ doctor }) { - // تبدیل img array به string - const doctorImage = imageUrl(doctor?.img?.[0]?.url, "/assets/images/doctor.png"); - // تبدیل specialties array به string const expertiseText = doctor?.specialties ?.map((exp) => exp.name) @@ -19,15 +15,13 @@ function Head({ doctor }) { mb-[12px] sm:mb-[19px] md:mb-[25px] lg:lg:mb-[32px] " > - profile doctor

diff --git a/components/appointment/location/Head.js b/components/appointment/location/Head.js index d578e4d..4ddb285 100644 --- a/components/appointment/location/Head.js +++ b/components/appointment/location/Head.js @@ -1,10 +1,6 @@ -import Image from "next/image"; -import { imageUrl } from "@/helper"; +import DoctorAvatar from "@/app/component/DoctorAvatar"; function Head({ doctor }) { - // تبدیل img array به string - const doctorImage = imageUrl(doctor?.img?.[0]?.url, "/assets/images/doctor.png"); - // تبدیل specialties array به string const expertiseText = doctor?.specialties ?.map((exp) => exp.name) @@ -12,15 +8,13 @@ function Head({ doctor }) { return (

- profile

diff --git a/components/doctor/detailDoctor/Title.js b/components/doctor/detailDoctor/Title.js index d4bc9a3..bfe836f 100644 --- a/components/doctor/detailDoctor/Title.js +++ b/components/doctor/detailDoctor/Title.js @@ -4,23 +4,19 @@ import TextLoading from "@/app/component/loading/Text"; import LikeDI from "@/components/icons/LikeDI"; import StarDI from "@/components/icons/StarDI"; import TickCircle from "@/components/icons/TickCircle"; -import Image from "next/image"; -import { imageUrl } from "@/helper"; +import DoctorAvatar from "@/app/component/DoctorAvatar"; function Title({ doctor }) { return (
- img-doctor