From 92ed6c332f6fcecedbefa8cd3fea69aab66c85e8 Mon Sep 17 00:00:00 2001 From: ttipo Date: Mon, 22 Jun 2026 23:31:45 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=B0=94=EA=B9=A5=ED=81=B4?= =?UTF-8?q?=EB=A6=AD/ESC=20=EB=8B=AB=EA=B8=B0=20=EA=B3=B5=EC=9A=A9=20?= =?UTF-8?q?=ED=9B=85=20useClickOutside=20=EB=8F=84=EC=9E=85=20(Phase=200)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 11곳에 복붙되던 document 리스너 등록/해제·바깥클릭·ESC·스크롤 닫기 로직을 useClickOutside 훅으로 통합. 재사용 드롭다운 5종에 우선 적용. - composables/useClickOutside.ts 신설 (event/esc/closeOnScroll 옵션) - 적용: DropdownSelect, StatusSelect, ScheduleTypeFilter, ScheduleDetailPanel(참석자 스택), ScheduleEventModal(참석자 멀티셀렉트) - 모달 ESC·페이지 레벨 오버레이 조정 로직은 후속 단계(BaseModal)에서 처리 Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/src/components/DropdownSelect.vue | 33 +++--------- frontend/src/components/StatusSelect.vue | 26 +++------ .../schedule/ScheduleDetailPanel.vue | 13 ++--- .../schedule/ScheduleEventModal.vue | 16 ++---- .../schedule/ScheduleTypeFilter.vue | 12 ++--- frontend/src/composables/useClickOutside.ts | 54 +++++++++++++++++++ 6 files changed, 79 insertions(+), 75 deletions(-) create mode 100644 frontend/src/composables/useClickOutside.ts diff --git a/frontend/src/components/DropdownSelect.vue b/frontend/src/components/DropdownSelect.vue index 06eead0..868d738 100644 --- a/frontend/src/components/DropdownSelect.vue +++ b/frontend/src/components/DropdownSelect.vue @@ -1,7 +1,8 @@ diff --git a/frontend/src/components/StatusSelect.vue b/frontend/src/components/StatusSelect.vue index 99e7311..633ac1f 100644 --- a/frontend/src/components/StatusSelect.vue +++ b/frontend/src/components/StatusSelect.vue @@ -1,6 +1,7 @@ diff --git a/frontend/src/components/schedule/ScheduleDetailPanel.vue b/frontend/src/components/schedule/ScheduleDetailPanel.vue index 400b433..e79faf0 100644 --- a/frontend/src/components/schedule/ScheduleDetailPanel.vue +++ b/frontend/src/components/schedule/ScheduleDetailPanel.vue @@ -1,6 +1,7 @@