Skip to content

Commit 14a144e

Browse files
committed
feat: FloatingPortal dismiss에 outsidePress 추가
1 parent 335e863 commit 14a144e

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

packages/tds-ui/src/components/modal/modal.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,13 @@ export const Modal = ({
5959
onOpenChange: (open) => (open ? undefined : onClose?.()),
6060
})
6161

62-
const dismiss = useDismiss(context)
62+
const dismiss = useDismiss(context, {
63+
outsidePress: (event) => {
64+
return !!(event.target as HTMLElement).closest?.(
65+
`#${CSS.escape(portalId)}`,
66+
)
67+
},
68+
})
6369
const role = useRole(context, { role: 'dialog' })
6470

6571
const { getFloatingProps } = useInteractions([dismiss, role])

packages/tds-ui/src/components/popup/popup.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,13 @@ export function Popup({
9797
onOpenChange: (open) => (open ? undefined : onClose?.()),
9898
})
9999

100-
const dismiss = useDismiss(context)
100+
const dismiss = useDismiss(context, {
101+
outsidePress: (event) => {
102+
return !!(event.target as HTMLElement).closest?.(
103+
`#${CSS.escape(portalId)}`,
104+
)
105+
},
106+
})
101107
const role = useRole(context, { role: 'dialog' })
102108

103109
const { getFloatingProps } = useInteractions([dismiss, role])

packages/tds-widget/src/public-header/side-menu/overlay.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,13 @@ export function SideMenuOverlay({
7272
onOpenChange: (open) => (open ? undefined : onClose?.()),
7373
})
7474

75-
const dismiss = useDismiss(context)
75+
const dismiss = useDismiss(context, {
76+
outsidePress: (event) => {
77+
return !!(event.target as HTMLElement).closest?.(
78+
`#${CSS.escape(portalId)}`,
79+
)
80+
},
81+
})
7682
const role = useRole(context, { role: 'menu' })
7783

7884
const { getFloatingProps } = useInteractions([dismiss, role])

0 commit comments

Comments
 (0)