"use client"; import moment from "moment-jalaali"; function nextAvailableLabel(timestamp) { if (!timestamp) return null; return `اولین نوبت آزاد: ${moment.unix(timestamp).format("jD jMMMM")}`; } /** * انتخاب محل نوبت‌دهی — پیش از انتخاب سرویس و روز. * * فهرست از سمت سرور بر اساس زودترین نوبت آزاد مرتب شده، پس اولین آیتم پیش‌فرض * درست است و اینجا دوباره مرتب نمی‌شود. */ function LocationSelect({ locations = [], selected, onSelect }) { const anyOpen = locations.some((l) => l.available_on_date !== false); return (

۱. انتخاب محل نوبت‌دهی

{!anyOpen && locations.length > 0 && (

در روز انتخاب‌شده هیچ‌کدام از محل‌ها نوبت‌دهی ندارند. روز دیگری را انتخاب کنید.

)}
{locations.map((location) => { const key = location.clinic_uuid ?? location.location_uuid ?? "personal"; const active = (selected?.clinic_uuid ?? null) === (location.clinic_uuid ?? null); const nextLabel = nextAvailableLabel(location.next_available_at); // null یعنی روزی انتخاب نشده؛ فقط false به معنی «این روز بسته است». const closed = location.available_on_date === false; return ( ); })}
); } export default LocationSelect;