✨ UI/UX: MudDataGrid + 로딩 상태 + 토스트 알림 (Phase 2,3 완료)
## 주요 개선사항 ### 1. MudDataGrid 구현 (페이징/정렬/필터링) - MudSimpleTable → MudDataGrid 전환 - 30개 행 페이징 - 컬럼별 정렬 (Name, ServiceType, CreatedAt) - 컬럼별 필터링 (Name, ServiceType) - 아이콘 버튼 (보기/수정) - 고밀도 Dense 모드 (행높이 32px) - 가상화 (Virtualize=true, 1000+ 행 성능) ### 2. 로딩 상태 강화 - AdminDataPanel 로딩 스피너 - 데이터 로드 중 시각적 피드백 - 로딩 완료 시 자동 전환 ### 3. 토스트 알림 추가 - 데이터 로드 성공: Info (문의 N건) - 데이터 로드 실패: Error (상세 메시지) - ISnackbar 주입 및 알림 처리 - 사용자 경험 개선 ### 4. 반응형 테이블 - MudDataGrid Dense: 콤팩트 레이아웃 - 모바일/태블릿 대응 (Virtualize) - 메시지 컬럼: text-overflow ellipsis - 작업 버튼: 중앙 정렬 ### 5. 컴포넌트 정리 - GetPreview 메서드 제거 (MudDataGrid 기본 처리) - GetStatusLabel 표준화 (switch 패턴) - 코드 간결성 향상 ## 빌드 검증 - ✅ 빌드 성공 (0 오류, 0 경고) - ✅ E2E 테스트 1/1 통과 (로그인 + 대시보드) - ✅ 토스트 알림 정상 작동 - ✅ 페이징 컨트롤 정상 작동 ## 다음 단계 - 다른 테이블 (Blog, Client 등)도 동일 패턴 적용 - 반응형 테스트 (모바일/태블릿) - 배포 준비 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
@using TaxBaik.Application.Services
|
||||
@using TaxBaik.Web.Services
|
||||
@inject IInquiryBrowserClient InquiryClient
|
||||
@inject ISnackbar Snackbar
|
||||
|
||||
<PageTitle>문의 관리</PageTitle>
|
||||
|
||||
@@ -71,10 +72,16 @@
|
||||
{
|
||||
var (items, _) = await InquiryClient.GetPagedAsync(1, 200);
|
||||
allInquiries = items.ToList();
|
||||
|
||||
if (allInquiries.Count > 0)
|
||||
{
|
||||
Snackbar.Add($"문의 {allInquiries.Count}건을 불러왔습니다.", Severity.Info);
|
||||
}
|
||||
}
|
||||
catch
|
||||
catch (Exception ex)
|
||||
{
|
||||
allInquiries = [];
|
||||
Snackbar.Add($"데이터 로드 실패: {ex.Message}", Severity.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user