@@ -21,7 +21,7 @@ import {
2121 TicketPriceQuantityFormValue
2222} from "../../../../api/order.client.ts" ;
2323import { useForm } from "@mantine/form" ;
24- import { range , useDisclosure , useInputState , useResizeObserver } from "@mantine/hooks" ;
24+ import { range , useInputState , useResizeObserver } from "@mantine/hooks" ;
2525import React , { useEffect , useMemo , useRef , useState } from "react" ;
2626import { showError , showInfo , showSuccess } from "../../../../utilites/notifications.tsx" ;
2727import { addQueryStringToUrl , isObjectEmpty , removeQueryStringFromUrl } from "../../../../utilites/helpers.ts" ;
@@ -33,7 +33,7 @@ import {PoweredByFooter} from "../../../common/PoweredByFooter";
3333import { Event } from "../../../../types.ts" ;
3434import { eventsClientPublic } from "../../../../api/event.client.ts" ;
3535import { promoCodeClientPublic } from "../../../../api/promo-code.client.ts" ;
36- import { IconX , IconChevronRight } from "@tabler/icons-react"
36+ import { IconChevronRight , IconX } from "@tabler/icons-react"
3737import { getSessionIdentifier } from "../../../../utilites/sessionIdentifier.ts" ;
3838import { 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