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); + }} >
{/* 헤더 */}