@@ -19,7 +19,7 @@ import { useAppSelector } from '../../hooks/redux';
1919import ErrorScreen from '../../screens/OrangeTicket/Error' ;
2020import Prize from '../../screens/OrangeTicket/Prize' ;
2121import UsedCard from '../../screens/OrangeTicket/UsedCard' ;
22- import { sheetSelector } from '../../store/reselect /ui' ;
22+ import { SheetsParamList } from '../../store/types /ui' ;
2323import { getNodeId , waitForLdk } from '../../utils/lightning' ;
2424import { showToast } from '../../utils/notifications' ;
2525import BottomSheetNavigationContainer from './BottomSheetNavigationContainer' ;
@@ -40,16 +40,19 @@ const screenOptions: NativeStackNavigationOptions = {
4040 headerShown : false ,
4141} ;
4242
43- const OrangeTicket = ( ) : ReactElement => {
43+ const SheetContent = ( {
44+ data,
45+ } : {
46+ data : SheetsParamList [ 'orangeTicket' ] ;
47+ } ) : ReactElement => {
4448 const [ isLoading , setIsLoading ] = useState ( true ) ;
4549 const [ amount , setAmount ] = useState < number > ( ) ;
4650 const [ errorCode , setErrorCode ] = useState < number > ( ) ;
4751 const orangeTickets = useAppSelector ( ( state ) => state . settings . orangeTickets ) ;
4852 const [ initialScreen , setInitialScreen ] =
4953 useState < keyof OrangeTicketStackParamList > ( 'Prize' ) ;
50- const { isOpen, ticketId } = useAppSelector ( ( state ) => {
51- return sheetSelector ( state , 'orangeTicket' ) ;
52- } ) ;
54+
55+ const { ticketId } = data ;
5356
5457 // biome-ignore lint/correctness/useExhaustiveDependencies: only when ticketId changes
5558 const getPrize = useCallback ( async ( ) : Promise < void > => {
@@ -134,44 +137,46 @@ const OrangeTicket = (): ReactElement => {
134137 } , [ ticketId ] ) ;
135138
136139 useEffect ( ( ) => {
137- if ( ! isOpen ) {
138- setInitialScreen ( 'Prize' ) ;
139- setIsLoading ( true ) ;
140- return ;
141- }
142-
143140 getPrize ( ) ;
144- } , [ isOpen , getPrize ] ) ;
141+ } , [ getPrize ] ) ;
145142
146143 if ( isLoading ) {
147144 return < > </ > ;
148145 }
149146
147+ return (
148+ < NavigationIndependentTree >
149+ < BottomSheetNavigationContainer >
150+ < Stack . Navigator
151+ initialRouteName = { initialScreen }
152+ screenOptions = { screenOptions } >
153+ < Stack . Screen
154+ name = "Prize"
155+ component = { Prize }
156+ initialParams = { { ticketId, amount } }
157+ />
158+ < Stack . Screen
159+ name = "UsedCard"
160+ component = { UsedCard }
161+ initialParams = { { amount } }
162+ />
163+ < Stack . Screen
164+ name = "Error"
165+ component = { ErrorScreen }
166+ initialParams = { { errorCode } }
167+ />
168+ </ Stack . Navigator >
169+ </ BottomSheetNavigationContainer >
170+ </ NavigationIndependentTree >
171+ ) ;
172+ } ;
173+
174+ const OrangeTicket = ( ) : ReactElement => {
150175 return (
151176 < BottomSheet id = "orangeTicket" size = "large" >
152- < NavigationIndependentTree >
153- < BottomSheetNavigationContainer key = { isOpen . toString ( ) } >
154- < Stack . Navigator
155- initialRouteName = { initialScreen }
156- screenOptions = { screenOptions } >
157- < Stack . Screen
158- name = "Prize"
159- component = { Prize }
160- initialParams = { { ticketId, amount } }
161- />
162- < Stack . Screen
163- name = "UsedCard"
164- component = { UsedCard }
165- initialParams = { { amount } }
166- />
167- < Stack . Screen
168- name = "Error"
169- component = { ErrorScreen }
170- initialParams = { { errorCode } }
171- />
172- </ Stack . Navigator >
173- </ BottomSheetNavigationContainer >
174- </ NavigationIndependentTree >
177+ { ( { data } : { data : SheetsParamList [ 'orangeTicket' ] } ) => {
178+ return < SheetContent data = { data } /> ;
179+ } }
175180 </ BottomSheet >
176181 ) ;
177182} ;
0 commit comments