From a0176cc336b679f69f2a1c98ee3872a4929b7ab8 Mon Sep 17 00:00:00 2001 From: gnezim Date: Sat, 18 Apr 2026 14:12:33 +0300 Subject: [PATCH] Keep DayTabs enabled until calendar API resolves MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With empty availableDates every day button rendered as [disabled], leaving the user unable to navigate between days while the /days API loads (or for routes where the calendar endpoint hasn't been wired yet). Treat an empty availableDates array as 'unknown' — don't disable anything, matching Angular's behaviour where tabs are tappable until the upstream tells us a specific day has no flights. --- src/features/online-board/components/DayTabs/DayTabs.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/features/online-board/components/DayTabs/DayTabs.tsx b/src/features/online-board/components/DayTabs/DayTabs.tsx index 4aef556c..c24f7830 100644 --- a/src/features/online-board/components/DayTabs/DayTabs.tsx +++ b/src/features/online-board/components/DayTabs/DayTabs.tsx @@ -39,7 +39,12 @@ export const DayTabs: FC = ({ const [currentPage, setCurrentPage] = useState(initialPage); + // Empty availableDates means the calendar API hasn't resolved yet (or + // the route has no day data). Treat every date as tappable in that + // case — matches Angular where the tabs stay enabled until we *know* + // the upstream reports no flights for a given day. const availableSet = useMemo(() => new Set(availableDates), [availableDates]); + const disableByAvailability = availableDates.length > 0; const visibleDates = allDates.slice( currentPage * PAGE_SIZE, @@ -68,7 +73,7 @@ export const DayTabs: FC = ({ key={date} date={date} isActive={date === selectedDate} - isDisabled={!availableSet.has(date)} + isDisabled={disableByAvailability && !availableSet.has(date)} locale={locale} onClick={onNavigate} />