Skip to content

Commit f9cb398

Browse files
committed
fix(Shuttle): Fix Error Handling When Sending Timetable
1 parent db74657 commit f9cb398

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

src/app/components/routemap/DotAnimation.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export const getDotAnimationConfig = (
7070
tab: string,
7171
currTimetable: SingleShuttleSchedule,
7272
) => {
73-
if (currTimetable !== undefined) {
73+
if (currTimetable.time !== '') {
7474
switch (tab) {
7575
case 'shuttlecoke_o':
7676
return [getDotAniTimetableConfig(currTimetable.type, 1)]

src/app/components/shuttle/Shuttle.tsx

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,8 @@ export const Shuttle = ({ location }: ShuttleStop) => {
446446
const { t } = useTranslation()
447447

448448
if (timetable.data === undefined) {
449+
if (currTimetable[0].time !== '')
450+
setCurrTimetable([{ type: 'NA', time: '' }])
449451
return <></>
450452
}
451453

@@ -454,6 +456,8 @@ export const Shuttle = ({ location }: ShuttleStop) => {
454456
}
455457

456458
if (timetable.status === 'error') {
459+
if (currTimetable[0].time !== '')
460+
setCurrTimetable([{ type: 'NA', time: '' }])
457461
// Timetable API error
458462
return (
459463
<>
@@ -471,6 +475,8 @@ export const Shuttle = ({ location }: ShuttleStop) => {
471475
}
472476

473477
if (timetable.data.length === 0) {
478+
if (currTimetable[0].time !== '')
479+
setCurrTimetable([{ type: 'NA', time: '' }])
474480
// Timetable doesn't exist
475481
return (
476482
<>
@@ -482,17 +488,11 @@ export const Shuttle = ({ location }: ShuttleStop) => {
482488
}
483489

484490
const filtered = timetable.data.filter((val) => isAfterCurrentTime(val))
485-
486-
// Send filtered[0](or also include filtered[1] when bus arrive simultaneously) Array to RouteVisual
487-
// when filtered has been updated.
488-
if (filtered[0] !== currTimetable[0]) {
489-
if (filtered.length >= 2 && filtered[0].time === filtered[1].time)
490-
setCurrTimetable([filtered[0], filtered[1]])
491-
else setCurrTimetable([filtered[0]])
492-
}
493-
494491
const reverted = filtered.map((val) => convertUnixToTime(val))
492+
495493
if (filtered.length === 0) {
494+
if (currTimetable[0].time !== '')
495+
setCurrTimetable([{ type: 'NA', time: '' }])
496496
// Buses are done for today. User should refresh after midnight.
497497
return (
498498
<>
@@ -503,6 +503,14 @@ export const Shuttle = ({ location }: ShuttleStop) => {
503503
)
504504
}
505505

506+
// Send filtered[0](or also include filtered[1] when bus arrive simultaneously) Array to RouteVisual
507+
// when filtered has been updated.
508+
if (filtered[0] !== currTimetable[0]) {
509+
if (filtered.length >= 2 && filtered[0].time === filtered[1].time)
510+
setCurrTimetable([filtered[0], filtered[1]])
511+
else setCurrTimetable([filtered[0]])
512+
}
513+
506514
// Otherwise - normal case
507515
return (
508516
<>

src/app/context/TimeTableContext.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export const TimeTableContextProvider = ({
2222
}: React.PropsWithChildren) => {
2323
const [currTimetable, setCurrTimetable] = useState<
2424
Array<SingleShuttleSchedule>
25-
>([])
25+
>([{ type: 'NA', time: '' }])
2626

2727
const value = React.useMemo(
2828
() => ({ currTimetable, setCurrTimetable }),

0 commit comments

Comments
 (0)