feat: alert/confirm을 공통 모달 다이얼로그로 통합

모든 window.alert/confirm 을 업무 삭제 모달과 동일한 구조/디자인의
공통 모달로 대체하고, 한 곳에서 관리하도록 다이얼로그 시스템을 도입한다.

- dialog.store: 알림/확인 큐 + Promise 기반 상태 관리
- useDialog(): alert/confirm 컴포저블 API
- AppDialog: App 루트 1회 마운트, 전역 .modal-*/.mbtn 클래스로 렌더
  (variant: info/success/warning/danger → 아이콘·버튼 색)
- relay.css: modal-ico.info/.warning, mbtn.primary 변형 추가
- 교체: API 에러 알림(useApi), 검증/성공 알림(Signup/ProjectCreate/
  ProjectSettings/TaskCreate), 삭제·제거 확인(ProjectSettings/
  ProjectMembers/AgentChatPanel)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-21 22:46:28 +09:00
parent 118d12f829
commit b1afe5480c
12 changed files with 284 additions and 16 deletions
+12 -2
View File
@@ -488,6 +488,14 @@ body {
background: var(--green-weak);
color: var(--green);
}
.modal-ico.info {
background: var(--accent-weak);
color: var(--accent);
}
.modal-ico.warning {
background: var(--amber-weak);
color: var(--amber);
}
.modal-ico svg {
width: 1.375rem;
height: 1.375rem;
@@ -549,13 +557,15 @@ body {
.mbtn.approve:hover {
background: #188a4b;
}
.mbtn.request-send {
.mbtn.request-send,
.mbtn.primary {
background: var(--accent);
border-color: var(--accent);
color: #fff;
box-shadow: 0 1px 2px rgba(79, 70, 229, 0.4);
}
.mbtn.request-send:hover {
.mbtn.request-send:hover,
.mbtn.primary:hover {
background: var(--accent-hover);
}
.modal-textarea {