Skip to content

Commit b2addf8

Browse files
authored
feat: close account selection modal when the modal overlay is clicked (#2473)
1 parent 29cad78 commit b2addf8

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

apps/web/src/components/AccountCard/AccountCard.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ export const AccountCard = () => {
2828
background={color("100")}
2929
account={currentAccount}
3030
id="account-tile"
31-
onClick={() => openWith(<AccountSelectorModal />, { canBeOverridden: true })}
31+
onClick={() =>
32+
openWith(<AccountSelectorModal />, { canBeOverridden: true, closeOnOverlayClick: true })
33+
}
3234
>
3335
<IconButton
3436
alignSelf="center"

packages/components/src/components/DynamicDisclosure/DynamicDisclosure.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

158162
export 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

Comments
 (0)