@@ -24,6 +24,7 @@ interface DynamicDisclosureContextType {
2424 props ?: ThemingProps & {
2525 onClose ?: ( ) => void | Promise < void > ;
2626 closeOnEsc ?: boolean ;
27+ closeOnOverlayClick ?: boolean ;
2728 canBeOverridden ?: boolean ;
2829 }
2930 ) => Promise < void > ;
@@ -67,6 +68,7 @@ type DisclosureStackItem = {
6768 props : ThemingProps & {
6869 onClose : ( ) => void | Promise < void > ;
6970 closeOnEsc ?: boolean ;
71+ closeOnOverlayClick ?: boolean ;
7072 canBeOverridden ?: boolean ; // protects WalletConnect and Beacon modals from being overriden
7173 } ;
7274 formValues : Record < string , any > ;
@@ -93,6 +95,7 @@ export const useDynamicDisclosure = () => {
9395 props : ThemingProps & {
9496 onClose ?: ( ) => void | Promise < void > ;
9597 closeOnEsc ?: boolean ;
98+ closeOnOverlayClick ?: boolean ;
9699 canBeOverridden ?: boolean ;
97100 } = { }
98101 ) => {
@@ -152,21 +155,22 @@ export const useDynamicDisclosure = () => {
152155 hasPrevious : stackRef . current . length > 1 ,
153156 allFormValues,
154157 canBeOverridden : ! ! currentItem ?. props . canBeOverridden ,
158+ closeOnOverlayClick : ! ! currentItem ?. props . closeOnOverlayClick ,
155159 } ;
156160} ;
157161
158162export const useDynamicModal = ( ) => {
159163 const disclosure = useDynamicDisclosure ( ) ;
160164
161- const { isOpen, props, content, onClose } = disclosure ;
165+ const { isOpen, props, content, onClose, closeOnOverlayClick } = disclosure ;
162166
163167 return {
164168 ...disclosure ,
165169 content : (
166170 < Modal
167171 autoFocus = { false }
168172 blockScrollOnMount = { false }
169- closeOnOverlayClick = { false }
173+ closeOnOverlayClick = { closeOnOverlayClick }
170174 isCentered
171175 isOpen = { isOpen }
172176 motionPreset = "slideInBottom"
0 commit comments