diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 244a73b..2683bc5 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -6,6 +6,7 @@ import { RouterView } from 'vue-router' import SessionExpiredDialog from '@/components/feedback/SessionExpiredDialog.vue' import ToastHost from '@/components/feedback/ToastHost.vue' import { useClock } from '@/composables/useClock' +import { useLargeFileAlerts } from '@/composables/useLargeFileAlerts' import { useLogoutSync } from '@/composables/useLogoutBroadcast' import { useMailRealtime } from '@/composables/useMailRealtime' import { useNewMailNotifier } from '@/composables/useNewMailNotifier' @@ -15,9 +16,16 @@ useLogoutSync() // 실시간 새 메일 — 로그인한 동안 앱 전체에서 돈다(설정 등 다른 화면에서도 바탕화면 알림 · 연결 상태가 이어지게). // 메일 화면은 이 소식을 받아 목록 · 개수를 맞춘다 (계약 2절 "실시간 알림" — MailLayout 의 useMailStatePolling). -// 사용자가 웹메일 탭(어느 탭이든)으로 돌아오면 띄운 바탕화면 알림을 닫는다 +// 사용자가 웹메일 탭(어느 탭이든)으로 돌아오면 띄운 바탕화면 알림을 닫는다. +// 올린 대용량 파일의 위험 판정(11단계)도 이 연결로 온다 — 탭마다 알림 · 쓰기 화면의 그 파일을 "위험"으로 (useLargeFileAlerts) const newMailNotifier = useNewMailNotifier() -useMailRealtime({ clock: useClock(), onNewMail: newMailNotifier.notify, onUserReturn: newMailNotifier.dismiss }) +const largeFileAlerts = useLargeFileAlerts() +useMailRealtime({ + clock: useClock(), + onNewMail: newMailNotifier.notify, + onUserReturn: newMailNotifier.dismiss, + onLargeFile: largeFileAlerts.notify, +})