Files
taxbaik/TaxBaik.Web/Components/Admin/Pages/Inquiries/InquiryList.razor
T
kjh2064 1b173376ee
TaxBaik CI/CD / build-and-deploy (push) Failing after 1m53s
refactor: admin ui를 fluent v5와 html 기반으로 전환
2026-06-29 22:37:40 +09:00

78 lines
2.3 KiB
Plaintext

@page "/admin/inquiries"
@attribute [Authorize]
@using TaxBaik.Web.Services
@inject IInquiryBrowserClient InquiryClient
<PageTitle>문의 관리</PageTitle>
<section class="admin-page-hero">
<div>
<div class="admin-eyebrow">Customer Requests</div>
<h1 class="admin-page-title">문의 관리</h1>
<p class="admin-page-subtitle">상담 요청을 상태별로 확인하고 후속 조치를 기록합니다.</p>
</div>
<button type="button" class="site-button primary" @onclick='() => Navigation.NavigateTo("/taxbaik/admin/inquiries/create")'>새 문의 등록</button>
</section>
<div class="admin-surface">
@if (isLoading)
{
<Skeleton Count="6" CssClass="taxbaik-skeleton-grid" />
}
else
{
<div class="admin-tabbar">
<button type="button" class="admin-tab active">전체</button>
<button type="button" class="admin-tab">신규</button>
<button type="button" class="admin-tab">상담중</button>
<button type="button" class="admin-tab">계약완료</button>
<button type="button" class="admin-tab">거절</button>
<button type="button" class="admin-tab">종결</button>
</div>
<InquiryTable Inquiries="allInquiries" Status="" />
}
</div>
@code {
[CascadingParameter]
private Task<AuthenticationState>? AuthStateTask { get; set; }
[Inject] private NavigationManager Navigation { get; set; } = default!;
private bool isLoading = true;
private IReadOnlyList<Domain.Entities.Inquiry> allInquiries = [];
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
if (AuthStateTask != null)
{
var authState = await AuthStateTask;
if (authState.User.Identity?.IsAuthenticated == true)
{
await LoadData();
StateHasChanged();
}
}
}
}
private async Task LoadData()
{
isLoading = true;
try
{
var (items, _) = await InquiryClient.GetPagedAsync(1, 200);
allInquiries = items.ToList();
}
catch
{
allInquiries = [];
}
finally
{
isLoading = false;
}
}
}