Skip to content

Commit 63ac89e

Browse files
committed
refactor: improve ticket availability logic and ensure proper handling of no available tickets
1 parent 7c9e167 commit 63ac89e

2 files changed

Lines changed: 34 additions & 16 deletions

File tree

  • apps/ticket/src/app/(pages)/event/[eventId]/_clientBoundray

apps/ticket/src/app/(pages)/event/[eventId]/_clientBoundray/DesktopTicketSectionClient/index.tsx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,26 @@ export const DesktopTicketSectionClient = ({ eventId, eventName }: Props) => {
6060
};
6161
});
6262

63-
const ticketOptions = eventTicketsData.rounds.flatMap((round) => {
64-
if (round.roundAvailable) {
65-
return round.ticketTypes.map((ticket) => ({
63+
const availableTickets = eventTicketsData.rounds
64+
.filter((round) => round.roundAvailable)
65+
.flatMap((round) =>
66+
round.ticketTypes.map((ticket) => ({
6667
value: String(ticket.ticketTypeId),
6768
label: `${ticket.ticketTypeName} - ₩ ${ticket.ticketTypePrice}`,
6869
disabled: ticket.isTicketSoldOut,
69-
}));
70-
}
70+
})),
71+
);
7172

72-
return [{ value: "No Available Tickets", label: "No Available Tickets", disabled: true }];
73-
});
73+
const ticketOptions =
74+
availableTickets.length > 0
75+
? availableTickets
76+
: [
77+
{
78+
value: "No Available Tickets",
79+
label: "No Available Tickets",
80+
disabled: true,
81+
},
82+
];
7483

7584
const roundSelect = useSelect({
7685
initialValue: selectedRoundId?.toString() || "",

apps/ticket/src/app/(pages)/event/[eventId]/_clientBoundray/SelectTicketBottomSheet/index.tsx

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ const SelectTicketBottomSheetContent = ({
5353
}) => {
5454
const [isLoading, setIsLoading] = useState(false);
5555
const selectedRound = eventTicketsData.rounds.find((round) => round.roundAvailable);
56-
const [selectedRoundId, setSelectedRoundId] = useState<number>(
57-
selectedRound?.roundId || eventTicketsData.rounds[0].roundId,
56+
const [selectedRoundId, setSelectedRoundId] = useState<number | undefined>(
57+
selectedRound?.roundId,
5858
);
5959
const [selectedTickets, setSelectedTickets] = useState<SelectedTicket[]>([]);
6060
const [isPromocodeOpen, setIsPromocodeOpen] = useState(false);
@@ -72,17 +72,26 @@ const SelectTicketBottomSheetContent = ({
7272
};
7373
});
7474

75-
const ticketOptions = eventTicketsData.rounds.flatMap((round) => {
76-
if (round.roundAvailable) {
77-
return round.ticketTypes.map((ticket) => ({
75+
const availableTickets = eventTicketsData.rounds
76+
.filter((round) => round.roundAvailable)
77+
.flatMap((round) =>
78+
round.ticketTypes.map((ticket) => ({
7879
value: String(ticket.ticketTypeId),
7980
label: `${ticket.ticketTypeName} - ₩ ${ticket.ticketTypePrice}`,
8081
disabled: ticket.isTicketSoldOut,
81-
}));
82-
}
82+
})),
83+
);
8384

84-
return [{ value: "No Available Tickets", label: "No Available Tickets", disabled: true }];
85-
});
85+
const ticketOptions =
86+
availableTickets.length > 0
87+
? availableTickets
88+
: [
89+
{
90+
value: "No Available Tickets",
91+
label: "No Available Tickets",
92+
disabled: true,
93+
},
94+
];
8695

8796
const roundSelect = useSelect({
8897
initialValue: selectedRoundId?.toString() || "",

0 commit comments

Comments
 (0)