RwConfirmWindow
삭제, 저장, 비밀번호 확인처럼 사용자의 명시적인 결정을 받아야 하는 작업에 사용하는 공통 확인 창입니다. Show의 결과를 기다린 뒤 확인된 경우에만 실제 업무 처리를 실행합니다.
확인 창 종류
| 모드 | 용도 |
|---|---|
CancelDeleteSave |
취소·삭제·저장 중 하나 선택 |
CancelSave |
변경 취소 또는 저장 |
CancelDelete |
삭제 여부 확인 |
Info |
처리 결과나 안내 표시 |
Error |
오류 내용 표시 |
PasswordConfirm |
현재 비밀번호 확인 |
PasswordChange |
현재·새 비밀번호 입력 |
YesNo |
예·아니요 결정 |
Loading |
완료될 때까지 진행 상태 표시 |
기본 호출
화면에 RwConfirmWindow를 한 번 배치하고 @ref로 참조합니다. 작업 직전에 Show(mode, title, message)를 호출하면 Task<RwConfirmWindowConfirmResult>가 반환됩니다. 결과가 Ok인 경우에만 서버 API를 실행합니다.
사용 예
<RwConfirmWindow @ref="confirmWindow" />
@code {
private RwConfirmWindow confirmWindow;
private async Task DeleteAsync()
{
var result = await confirmWindow.Show(
RwConfirmWindowButtonMode.CancelDelete,
"품목 삭제",
$"{selectedItem.Name} 품목을 삭제하시겠습니까?");
if (result == RwConfirmWindowConfirmResult.Ok)
await DeleteItemAsync(selectedItem.Id);
}
}
문구 작성
제목에는 수행할 작업을, 본문에는 대상과 영향을 적습니다. “정말 진행하시겠습니까?”처럼 대상이 없는 문구보다 “A 거래처의 연결을 해제하시겠습니까?”처럼 사용자가 결과를 판단할 수 있는 문구가 적합합니다.
비밀번호 입력
PasswordConfirm과 PasswordChange는 입력 화면을 제공하지만 실제 자격 증명 검증은 인증 API에서 수행해야 합니다. 비밀번호를 로그, 예외 메시지나 장기 상태에 남기지 않습니다.
비동기 처리
확인 후 서버 작업이 오래 걸리면 중복 클릭을 막고 진행 상태를 표시합니다. Loading 모드를 사용한 경우 성공과 실패가 결정되면 반드시 Close()를 호출하거나 결과 창으로 전환합니다.
사용 기준
일반 조회나 자동 저장마다 확인 창을 띄우지 않습니다. 삭제, 권한 회수, 외부 전송과 대량 변경처럼 취소 비용이 큰 작업에 사용합니다. 이미 서버에서 완료된 작업을 다시 확인하게 만드는 흐름도 피합니다.
접근성과 문제 확인
- 창이 열리면 키보드 사용자가 제목과 메시지를 읽고 버튼으로 이동할 수 있어야 합니다.
- 취소와 위험 작업 버튼의 순서와 색상을 화면마다 바꾸지 않습니다.
- 확인 결과를 받기 전에 서버 작업이 시작되지 않는지 확인합니다.
- 호출 화면이 닫힐 때 대기 중인 확인 작업이 남지 않도록 합니다.
