feat(frontend): 새 메일 확인·메일 검색·여러 통 선택과 처리 화면

- 화면이 보이는 동안 1분마다 바뀐 것을 묻고 목록·메일함 숫자·탭 제목 "(N)" 을 맞춘다 — 늦게 온 응답은 목록 변경 세대로 버린다
- 상단 검색 칸 → /mail/search (범위 전환, 결과 없음 안내에 엔진 한계)
- 표·분할 보기에서 여러 통 고르기와 도구 줄, 이동 메뉴, 휴지통 이동 + 되돌리기, 휴지통에서만 확인 뒤 영구 삭제
- 읽기 화면의 삭제도 DELETE 대신 휴지통 이동 · 확인 뒤 영구 삭제 — 다른 창이 휴지통에 넣은 메일을 확인 없이 지우지 않게
- 되돌리기 알림은 띄운 세션에서만 움직인다 — 메일 id 는 계정마다 겹칠 수 있다
- 메일 스토어를 기능별 setup 모듈로 나눴다 (공개 API 그대로)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 23:56:09 +09:00
parent 090ee361a3
commit 192807f943
83 changed files with 7421 additions and 1157 deletions
+7
View File
@@ -21,6 +21,13 @@ export function createTestRouter(): Router {
{ path: '/login', name: 'login', component: Empty },
{ path: '/mail', name: 'mail', component: Empty, meta: { requiresAuth: true } },
{ path: '/mail/compose', name: 'mail-compose', component: Empty, meta: { requiresAuth: true } },
{ path: '/mail/search', name: 'mail-search', component: Empty, meta: { requiresAuth: true } },
{
path: '/mail/search/:messageId',
name: 'mail-search-message',
component: Empty,
meta: { requiresAuth: true },
},
{ path: '/mail/:mailboxId', name: 'mail-mailbox', component: Empty, meta: { requiresAuth: true } },
{
path: '/mail/:mailboxId/:messageId',