- Bumped versions for several packages including: - @emotion/styled from ^11.14.0 to ^11.14.1 - @maptiler/sdk from ^2.4.0 to ^2.5.1 - @mui/icons-material from ^7.1.0 to ^7.3.6 - @mui/material from ^7.1.0 to ^7.3.6 - @mui/styled-engine-sc from ^6.0.0-alpha.18 to ^6.4.9 - @mui/x-charts from ^7.16.0 to ^7.29.1 - @mui/x-date-pickers from ^7.17.0 to ^7.29.4 - @next/third-parties from ^15.1.0 to ^15.5.7 - axios from ^1.7.7 to ^1.13.2 - dayjs from ^1.11.13 to ^1.11.19 - jspdf from ^3.0.1 to ^3.0.4 - next from ^14.2.20 to ^15.5.7 - next-themes from ^0.3.0 to ^0.4.6 - npm from ^10.8.2 to ^10.9.4 - react from ^18.0.0 to ^18.3.1 - react-dom from ^18 to ^18.3.1 - react-easy-crop from ^5.1.0 to ^5.5.6 - react-toastify from ^10.0.6 to ^11.0.5 - sharp from ^0.34.1 to ^0.34.5 - styled-components from ^6.1.11 to ^6.1.19 - stylis from ^4.3.4 to ^4.3.6 - swiper from ^11.1.9 to ^11.2.10 - postcss from ^8 to ^8.5.6 - prettier from ^3.5.3 to ^3.7.4 - tailwindcss from ^3.4.1 to ^3.4.18
84 lines
3.0 KiB
JavaScript
84 lines
3.0 KiB
JavaScript
import CircularLoading from "@/app/component/loading/Circular";
|
|
import TextLoading from "@/app/component/loading/Text";
|
|
import ArrowLeftD from "@/components/icons/ArrowLeftD";
|
|
import ClockClinic from "@/components/icons/ClockClinic";
|
|
import LocationClinic from "@/components/icons/LocationClinic";
|
|
import { Button } from "@mui/material";
|
|
import Image from "next/image";
|
|
import Link from "next/link";
|
|
|
|
function ItemClinic({ setFilteredClinics, data, loading }) {
|
|
const handleLoading = () => {
|
|
setFilteredClinics((prevClinics) =>
|
|
prevClinics.map((item) =>
|
|
item.id === data.id
|
|
? { ...item, loading: true }
|
|
: { ...item, loading: false }
|
|
)
|
|
);
|
|
};
|
|
|
|
return (
|
|
<li className="p-4 relative bg-[#FFF] border border-solid border-[#EFEFEF] rounded-[8px]">
|
|
<div className="flex items-center justify-start gap-2">
|
|
<CircularLoading loading={loading} width={60} height={60}>
|
|
<Image
|
|
width={60}
|
|
height={60}
|
|
className="object-cover rounded-full w-[64px] md:w-[68px] lg:w-[72px] h-[64px] md:h-[68px] lg:h-[72px]"
|
|
src={data.clinic_logo?.[0]?.url || "/assets/images/logo.png"}
|
|
alt="img clinic"
|
|
/>
|
|
</CircularLoading>
|
|
<div className="flex flex-col items-start justify-center gap-2">
|
|
<Link href={`/clinic/${data.uuid}`}>
|
|
<TextLoading loading={loading} width={100} height={18}>
|
|
<h3 className="text-[#3B3B3B] text-[14px] font-bold">
|
|
{data.title}
|
|
</h3>
|
|
</TextLoading>
|
|
</Link>
|
|
<TextLoading loading={loading} width={60} height={18}>
|
|
<p className="text-[#7E7E7E] text-[14px] font-normal">
|
|
{data.doctors} پزشک
|
|
</p>
|
|
</TextLoading>
|
|
</div>
|
|
</div>
|
|
<div className="flex flex-col items-start mt-4 gap-4 mb-[14px]">
|
|
<div className="flex items-start justify-start gap-0.5">
|
|
<LocationClinic />
|
|
<TextLoading loading={loading} width={150} height={18}>
|
|
<p className="text-[#7E7E7E] text-[12px] font-normal">
|
|
{data.address}
|
|
</p>
|
|
</TextLoading>
|
|
</div>
|
|
<div className="flex items-start justify-start gap-0.5 ml-[64px]">
|
|
<ClockClinic />
|
|
<TextLoading loading={loading} width={120} height={18}>
|
|
<p className="text-[#7E7E7E] text-[12px] font-normal">
|
|
ساعت کاری: {data.field_working_days}
|
|
</p>
|
|
</TextLoading>
|
|
</div>
|
|
</div>
|
|
|
|
{/* Arrow */}
|
|
<Link href={`/clinic/${data.uuid}`}>
|
|
<Button
|
|
onClick={handleLoading}
|
|
loading={data?.loading}
|
|
className="!bg-[#5559CE] !p-[14px] !absolute !left-4 !bottom-4 !rounded-full !w-fit"
|
|
>
|
|
<div className={data && data.loading ? "opacity-0" : ""}>
|
|
<ArrowLeftD />
|
|
</div>
|
|
</Button>
|
|
</Link>
|
|
</li>
|
|
);
|
|
}
|
|
|
|
export default ItemClinic;
|