@@ -9,6 +9,7 @@ const HeadlessModal = forwardRef(({ name, children, ...props }, ref) => {
9
9
const { stack, registerLocalModal, removeLocalModal } = useModalStack ( )
10
10
11
11
const [ localModalContext , setLocalModalContext ] = useState ( null )
12
+ let modalContextCopy = name ? localModalContext : stack [ modalIndex ]
12
13
const modalContext = useMemo ( ( ) => ( name ? localModalContext : stack [ modalIndex ] ) , [ name , localModalContext , modalIndex , stack ] )
13
14
14
15
const nextIndex = useMemo ( ( ) => {
@@ -38,6 +39,7 @@ const HeadlessModal = forwardRef(({ name, children, ...props }, ref) => {
38
39
registerLocalModal ( name , ( localContext ) => {
39
40
removeListeners = localContext . registerEventListenersFromProps ( props )
40
41
setLocalModalContext ( localContext )
42
+ modalContextCopy = localContext
41
43
} )
42
44
43
45
return ( ) => {
@@ -53,22 +55,22 @@ const HeadlessModal = forwardRef(({ name, children, ...props }, ref) => {
53
55
useImperativeHandle (
54
56
ref ,
55
57
( ) => ( {
56
- afterLeave : ( ) => modalContext . afterLeave ( ) ,
57
- close : ( ) => modalContext . close ( ) ,
58
+ afterLeave : ( ) => modalContextCopy . afterLeave ( ) ,
59
+ close : ( ) => modalContextCopy . close ( ) ,
58
60
config,
59
- emit : ( ...args ) => modalContext . emit ( ...args ) ,
60
- getChildModal : ( ) => modalContext . getChildModal ( ) ,
61
- getParentModal : ( ) => modalContext . getParentModal ( ) ,
62
- id : modalContext ?. id ,
63
- index : modalContext ?. index ,
64
- isOpen : modalContext ?. isOpen ,
65
- modalContext,
66
- onTopOfStack : modalContext ?. onTopOfStack ,
67
- reload : ( ) => modalContext . reload ( ) ,
68
- setOpen : ( ) => modalContext . setOpen ( ) ,
69
- shouldRender : modalContext ?. shouldRender ,
61
+ emit : ( ...args ) => modalContextCopy . emit ( ...args ) ,
62
+ getChildModal : ( ) => modalContextCopy . getChildModal ( ) ,
63
+ getParentModal : ( ) => modalContextCopy . getParentModal ( ) ,
64
+ id : modalContextCopy ?. id ,
65
+ index : modalContextCopy ?. index ,
66
+ isOpen : modalContextCopy ?. isOpen ,
67
+ modalContext : modalContextCopy ,
68
+ onTopOfStack : modalContextCopy ?. onTopOfStack ,
69
+ reload : ( ) => modalContextCopy . reload ( ) ,
70
+ setOpen : ( ) => modalContextCopy . setOpen ( ) ,
71
+ shouldRender : modalContextCopy ?. shouldRender ,
70
72
} ) ,
71
- [ modalContext ] ,
73
+ [ modalContextCopy ] ,
72
74
)
73
75
74
76
return (
0 commit comments