diff --git a/src/components/ui/date-picker.tsx b/src/components/ui/date-picker.tsx
index 6c7ea6b4..f8e50817 100644
--- a/src/components/ui/date-picker.tsx
+++ b/src/components/ui/date-picker.tsx
@@ -163,6 +163,16 @@ function DatePicker({
align={align}
side={side}
sideOffset={sideOffset}
+ onPointerDownOutside={(e) => {
+ // Dialog cascade 방지 (Portal 렌더링으로 인한 모달 닫힘 방지)
+ // 단, Popover는 수동으로 닫기
+ e.preventDefault();
+ setOpen(false);
+ }}
+ onInteractOutside={(e) => {
+ e.preventDefault();
+ setOpen(false);
+ }}
>
{showMonthPicker ? (
diff --git a/src/components/ui/date-range-picker.tsx b/src/components/ui/date-range-picker.tsx
index 714ae736..0859b5e5 100644
--- a/src/components/ui/date-range-picker.tsx
+++ b/src/components/ui/date-range-picker.tsx
@@ -199,8 +199,14 @@ function DateRangePicker({
e.preventDefault()}
- onInteractOutside={(e) => e.preventDefault()}
+ onPointerDownOutside={(e) => {
+ e.preventDefault();
+ setOpen(false);
+ }}
+ onInteractOutside={(e) => {
+ e.preventDefault();
+ setOpen(false);
+ }}
>
{showMonthPicker ? (
diff --git a/src/components/ui/multi-select-combobox.tsx b/src/components/ui/multi-select-combobox.tsx
index 7ed308c7..df91e3d8 100644
--- a/src/components/ui/multi-select-combobox.tsx
+++ b/src/components/ui/multi-select-combobox.tsx
@@ -88,8 +88,14 @@ export function MultiSelectCombobox({
e.preventDefault()}
- onInteractOutside={(e) => e.preventDefault()}
+ onPointerDownOutside={(e) => {
+ e.preventDefault();
+ setOpen(false);
+ }}
+ onInteractOutside={(e) => {
+ e.preventDefault();
+ setOpen(false);
+ }}
>
diff --git a/src/components/ui/searchable-select.tsx b/src/components/ui/searchable-select.tsx
index 709b1ff9..7d639362 100644
--- a/src/components/ui/searchable-select.tsx
+++ b/src/components/ui/searchable-select.tsx
@@ -191,6 +191,16 @@ export function SearchableSelect({
{
+ // Dialog cascade 방지 (Portal 렌더링으로 인한 모달 닫힘 방지)
+ // 단, Popover는 수동으로 닫기
+ e.preventDefault();
+ handleOpenChange(false);
+ }}
+ onInteractOutside={(e) => {
+ e.preventDefault();
+ handleOpenChange(false);
+ }}
>
e.preventDefault()}
- onInteractOutside={(e) => e.preventDefault()}
+ onPointerDownOutside={(e) => {
+ e.preventDefault();
+ setOpen(false);
+ }}
+ onInteractOutside={(e) => {
+ e.preventDefault();
+ setOpen(false);
+ }}
>
{/* 헤더 */}