@@ -513,7 +513,11 @@ class NavigationManager {
513
513
/**
514
514
* Get navigation screen options
515
515
*/
516
- private getScreenOptions ( component : NavigationComponent , defaultOptions : Options = { } ) : Options {
516
+ private getScreenOptions (
517
+ component : NavigationComponent ,
518
+ defaultOptions : Options = { } ,
519
+ props : Record < string , any > = { } ,
520
+ ) : Options {
517
521
const pickDefaultOptions = [
518
522
'topBar.background.color' ,
519
523
'topBar.title.color' ,
@@ -529,7 +533,8 @@ class NavigationManager {
529
533
const options =
530
534
// @ts -ignore
531
535
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
532
- typeof component . options === 'function' ? component . options ( { } ) : component . options ;
536
+ typeof component . options === 'function' ? component . options ( props ) : component . options ;
537
+
533
538
const allowedOptions = _ . pick ( options , [ 'topBar' , 'bottomTab' ] ) ;
534
539
const pickDefaultNavOptions = _ . pick ( defaultOptions , pickDefaultOptions ) ;
535
540
@@ -583,13 +588,20 @@ class NavigationManager {
583
588
return ;
584
589
}
585
590
586
- // @ts -ignore
591
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
592
+ const reactInternals = wrappedComponent ?. [ '_reactInternals' ] ;
587
593
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
588
- const component = wrappedComponent ?. [ '_reactInternals' ] ?. type as NavigationComponent ;
594
+ const component = reactInternals ?. type as NavigationComponent ;
595
+ const componentProps =
596
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
597
+ reactInternals ?. stateNode ?. state ?. allProps as {
598
+ componentId : string ;
599
+ rootTag : number ;
600
+ } & Record < string , any > ;
589
601
590
602
stackOptions [ stackId ] = NavigationManager . mergeScreenOptions (
591
603
stackOptions [ stackId ] ?? { } ,
592
- this . getScreenOptions ( component , defaultOptions ) ,
604
+ this . getScreenOptions ( component , defaultOptions , componentProps ) ,
593
605
) ;
594
606
595
607
Nav . mergeOptions ( componentId , stackOptions [ stackId ] ) ;
0 commit comments