- Doctor page map: the visible locations card read doctor.address (empty
from the detail endpoint) while coordinates live in the separately
fetched addresses. Thread `addresses` (with map.latitude/longitude) down
page → DoctorPage → DetailDoctor → Locations; card hidden when empty
- Claim modal: updated info-box text ("نوبتهای این پروفایل عمومی و غیرخاص
هستند")، added mobile field (validated, must match account), added ALTCHA
widget (submit disabled until captcha resolves; payload sent as `altcha`)
- Owner delete: services.deleteDoctor + a guarded two-step "حذف این پروفایل"
in the claim success screen (owner enforced server-side; 403/409 shown)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
28 lines
861 B
JavaScript
28 lines
861 B
JavaScript
import CustomLoading from "@/app/component/loading/Custom";
|
|
import Item from "./Item";
|
|
|
|
function Locations({ addresses }) {
|
|
if (!addresses?.length) return null;
|
|
return (
|
|
<div>
|
|
<p className="text-[#525252] text-[16px] md:text-[18px] lg:text-[20px] font-bold">
|
|
موقعیت مکانی{" "}
|
|
</p>
|
|
<ul className="flex w-full mt-[24px] flex-col justify-center items-start">
|
|
{addresses.map((item, idx) => (
|
|
<CustomLoading key={idx} width="full" height={40}>
|
|
<li className="w-full">
|
|
<Item data={item} />
|
|
{addresses.length > idx + 1 && (
|
|
<span className="w-full h-px bg-[#EFEFEF] block my-[12px] md:my-[14px] lg:my-[16px]"></span>
|
|
)}
|
|
</li>
|
|
</CustomLoading>
|
|
))}
|
|
</ul>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export default Locations;
|