fb9c77943f
TaxBaik CI/CD / build-and-deploy (push) Successful in 50s
- App.razor: loading overlay starts with `show` class (visible on cold load) - admin-session.js: add showLoading()/hideLoading(); MutationObserver detects .admin-page-hero / .admin-login-page instead of mud-element count threshold; observer restarts on every navigation cycle via LocationChanged - MainLayout.razor: subscribe to NavigationManager.LocationChanged → call JS showLoading() on every route change; implements IDisposable - InquiryList.razor: remove unused IInquiryRepository injection; load data once (GetPagedAsync(1,200)) and pass IReadOnlyList to all six tab panels - InquiryTable.razor: accept Inquiries parameter; filter synchronously in OnParametersSet() — eliminates 6 redundant API calls per page visit - admin.css: overlay fade-in animation (0.15s); page content fade-in on route mount via .admin-page-hero / .admin-login-page animation (0.25s) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
57 lines
1.8 KiB
Plaintext
57 lines
1.8 KiB
Plaintext
@page "/admin/inquiries"
|
|
@attribute [Authorize]
|
|
@using TaxBaik.Web.Services
|
|
@inject IInquiryBrowserClient InquiryClient
|
|
|
|
<PageTitle>문의 관리</PageTitle>
|
|
|
|
<section class="admin-page-hero">
|
|
<div>
|
|
<MudText Typo="Typo.caption" Class="admin-eyebrow">Customer Requests</MudText>
|
|
<MudText Typo="Typo.h4" Class="admin-page-title">문의 관리</MudText>
|
|
<MudText Typo="Typo.body2" Class="admin-page-subtitle">상담 요청을 상태별로 확인하고 후속 조치를 기록합니다.</MudText>
|
|
</div>
|
|
</section>
|
|
|
|
@if (isLoading)
|
|
{
|
|
<MudProgressCircular Indeterminate="true" Class="ma-4" />
|
|
}
|
|
else
|
|
{
|
|
<MudPaper Class="admin-surface" Elevation="0">
|
|
<MudTabs Rounded="true" Elevation="0" Class="admin-tabs">
|
|
<MudTabPanel Text="전체">
|
|
<InquiryTable Inquiries="allInquiries" Status="" />
|
|
</MudTabPanel>
|
|
<MudTabPanel Text="신규">
|
|
<InquiryTable Inquiries="allInquiries" Status="new" />
|
|
</MudTabPanel>
|
|
<MudTabPanel Text="상담중">
|
|
<InquiryTable Inquiries="allInquiries" Status="consulting" />
|
|
</MudTabPanel>
|
|
<MudTabPanel Text="계약완료">
|
|
<InquiryTable Inquiries="allInquiries" Status="contracted" />
|
|
</MudTabPanel>
|
|
<MudTabPanel Text="거절">
|
|
<InquiryTable Inquiries="allInquiries" Status="rejected" />
|
|
</MudTabPanel>
|
|
<MudTabPanel Text="종결">
|
|
<InquiryTable Inquiries="allInquiries" Status="closed" />
|
|
</MudTabPanel>
|
|
</MudTabs>
|
|
</MudPaper>
|
|
}
|
|
|
|
@code {
|
|
private bool isLoading = true;
|
|
private IReadOnlyList<Domain.Entities.Inquiry> allInquiries = [];
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
var (items, _) = await InquiryClient.GetPagedAsync(1, 200);
|
|
allInquiries = items.ToList();
|
|
isLoading = false;
|
|
}
|
|
}
|