Skip to content

Commit 28cd064

Browse files
authored
Merge pull request #298 from HiEventsDev/fix/hidden-ticket-promo-code-issue
2 parents 03ea042 + b9608ea commit 28cd064

File tree

1 file changed

+16
-8
lines changed
  • frontend/src/components/routes/ticket-widget/SelectTickets

1 file changed

+16
-8
lines changed

frontend/src/components/routes/ticket-widget/SelectTickets/index.tsx

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121
TicketPriceQuantityFormValue
2222
} from "../../../../api/order.client.ts";
2323
import {useForm} from "@mantine/form";
24-
import {range, useDisclosure, useInputState, useResizeObserver} from "@mantine/hooks";
24+
import {range, useInputState, useResizeObserver} from "@mantine/hooks";
2525
import React, {useEffect, useMemo, useRef, useState} from "react";
2626
import {showError, showInfo, showSuccess} from "../../../../utilites/notifications.tsx";
2727
import {addQueryStringToUrl, isObjectEmpty, removeQueryStringFromUrl} from "../../../../utilites/helpers.ts";
@@ -33,7 +33,7 @@ import {PoweredByFooter} from "../../../common/PoweredByFooter";
3333
import {Event} from "../../../../types.ts";
3434
import {eventsClientPublic} from "../../../../api/event.client.ts";
3535
import {promoCodeClientPublic} from "../../../../api/promo-code.client.ts";
36-
import {IconX, IconChevronRight} from "@tabler/icons-react"
36+
import {IconChevronRight, IconX} from "@tabler/icons-react"
3737
import {getSessionIdentifier} from "../../../../utilites/sessionIdentifier.ts";
3838
import {Constants} from "../../../../constants.ts";
3939

@@ -81,6 +81,7 @@ const SelectTickets = (props: SelectTicketsProps) => {
8181
const [event, setEvent] = useState(props.event);
8282
const [orderInProcessOverlayVisible, setOrderInProcessOverlayVisible] = useState(false);
8383
const [resizeRef, resizeObserverRect] = useResizeObserver();
84+
const [collapsedTickets, setCollapsedTickets] = useState<{ [key: string]: boolean }>({});
8485

8586
useEffect(() => sendHeightToIframeWidgets(), [resizeObserverRect.height]);
8687

@@ -297,14 +298,21 @@ const SelectTickets = (props: SelectTicketsProps) => {
297298
.map((n) => n.toString());
298299
quantityRange.unshift("0");
299300

300-
const [ticketIsCollapsed, {toggle: collapseTicket}] = useDisclosure(ticket.start_collapsed);
301+
const isTicketCollapsed = collapsedTickets[ticket.id] ?? ticket.start_collapsed;
302+
const toggleCollapse = () => {
303+
setCollapsedTickets(prev => ({
304+
...prev,
305+
[ticket.id]: !isTicketCollapsed
306+
}));
307+
};
301308

302309
return (
303310
<div key={ticket.id} className={'hi-ticket-row'}>
304311
<div className={'hi-title-row'}>
305-
<UnstyledButton variant={'transparent'}
306-
className={'hi-ticket-title'}
307-
onClick={collapseTicket}
312+
<UnstyledButton
313+
variant={'transparent'}
314+
className={'hi-ticket-title'}
315+
onClick={toggleCollapse}
308316
>
309317
<h3>
310318
{ticket.title}
@@ -330,12 +338,12 @@ const SelectTickets = (props: SelectTicketsProps) => {
330338
)}
331339
</div>
332340
<span className={`hi-ticket-collapse-arrow`}>
333-
<IconChevronRight className={ticketIsCollapsed ? "" : "open"} />
341+
<IconChevronRight className={!isTicketCollapsed ? "" : "open"}/>
334342
</span>
335343
</UnstyledButton>
336344
</div>
337345

338-
<Collapse in={!ticketIsCollapsed} className={'hi-ticket-content'}>
346+
<Collapse in={!isTicketCollapsed} className={'hi-ticket-content'}>
339347
<div className={'hi-price-tiers-rows'}>
340348
<TieredPricing
341349
ticketIndex={ticketIndex}

0 commit comments

Comments
 (0)