fix: Blazor 인증 공급자의 비동기 로딩 지연에 의한 API 호출 레이스 컨디션 해결 (CascadingParameter Task<AuthenticationState> 대기 추가)
TaxBaik CI/CD / build-and-deploy (push) Successful in 59s

This commit is contained in:
2026-06-29 15:30:14 +09:00
parent fc339ca9e7
commit 0d3615b44d
6 changed files with 88 additions and 28 deletions
@@ -116,6 +116,9 @@
</MudDialog> </MudDialog>
@code { @code {
[CascadingParameter]
private Task<AuthenticationState>? AuthStateTask { get; set; }
private List<ConsultingActivity>? activities; private List<ConsultingActivity>? activities;
private List<Client> clients = []; private List<Client> clients = [];
private Dictionary<int, string> clientMap = new(); private Dictionary<int, string> clientMap = new();
@@ -127,11 +130,18 @@
protected override async Task OnAfterRenderAsync(bool firstRender) protected override async Task OnAfterRenderAsync(bool firstRender)
{ {
if (firstRender) if (firstRender)
{
if (AuthStateTask != null)
{
var authState = await AuthStateTask;
if (authState.User.Identity?.IsAuthenticated == true)
{ {
await LoadData(); await LoadData();
StateHasChanged(); StateHasChanged();
} }
} }
}
}
private async Task LoadData() private async Task LoadData()
{ {
@@ -126,6 +126,9 @@
</MudDialog> </MudDialog>
@code { @code {
[CascadingParameter]
private Task<AuthenticationState>? AuthStateTask { get; set; }
private List<Contract>? contracts; private List<Contract>? contracts;
private List<Client> clients = []; private List<Client> clients = [];
private Dictionary<int, string> clientMap = new(); private Dictionary<int, string> clientMap = new();
@@ -137,11 +140,18 @@
protected override async Task OnAfterRenderAsync(bool firstRender) protected override async Task OnAfterRenderAsync(bool firstRender)
{ {
if (firstRender) if (firstRender)
{
if (AuthStateTask != null)
{
var authState = await AuthStateTask;
if (authState.User.Identity?.IsAuthenticated == true)
{ {
await LoadData(); await LoadData();
StateHasChanged(); StateHasChanged();
} }
} }
}
}
private async Task LoadData() private async Task LoadData()
{ {
@@ -158,6 +158,9 @@
</MudPaper> </MudPaper>
@code { @code {
[CascadingParameter]
private Task<AuthenticationState>? AuthStateTask { get; set; }
private AdminDashboardSummary summary = new(0, 0, 0, 0, []); private AdminDashboardSummary summary = new(0, 0, 0, 0, []);
private List<Domain.Entities.TaxFiling> upcomingFilings = []; private List<Domain.Entities.TaxFiling> upcomingFilings = [];
private string? errorMessage; private string? errorMessage;
@@ -166,6 +169,11 @@
protected override async Task OnAfterRenderAsync(bool firstRender) protected override async Task OnAfterRenderAsync(bool firstRender)
{ {
if (firstRender) if (firstRender)
{
if (AuthStateTask != null)
{
var authState = await AuthStateTask;
if (authState.User.Identity?.IsAuthenticated == true)
{ {
try try
{ {
@@ -189,6 +197,8 @@
} }
} }
} }
}
}
private static string GetStatusLabel(string status) => InquiryStatusMapper.Labels.GetValueOrDefault(status, status); private static string GetStatusLabel(string status) => InquiryStatusMapper.Labels.GetValueOrDefault(status, status);
@@ -113,6 +113,9 @@
</MudDialog> </MudDialog>
@code { @code {
[CascadingParameter]
private Task<AuthenticationState>? AuthStateTask { get; set; }
private List<RevenueTracking>? revenues; private List<RevenueTracking>? revenues;
private List<Client> clients = []; private List<Client> clients = [];
private Dictionary<int, string> clientMap = new(); private Dictionary<int, string> clientMap = new();
@@ -123,11 +126,18 @@
protected override async Task OnAfterRenderAsync(bool firstRender) protected override async Task OnAfterRenderAsync(bool firstRender)
{ {
if (firstRender) if (firstRender)
{
if (AuthStateTask != null)
{
var authState = await AuthStateTask;
if (authState.User.Identity?.IsAuthenticated == true)
{ {
await LoadData(); await LoadData();
StateHasChanged(); StateHasChanged();
} }
} }
}
}
private async Task LoadData() private async Task LoadData()
{ {
@@ -141,6 +141,9 @@
</MudDialog> </MudDialog>
@code { @code {
[CascadingParameter]
private Task<AuthenticationState>? AuthStateTask { get; set; }
private List<TaxFilingSchedule>? schedules; private List<TaxFilingSchedule>? schedules;
private List<Client> clients = []; private List<Client> clients = [];
private Dictionary<int, string> clientMap = new(); private Dictionary<int, string> clientMap = new();
@@ -151,11 +154,18 @@
protected override async Task OnAfterRenderAsync(bool firstRender) protected override async Task OnAfterRenderAsync(bool firstRender)
{ {
if (firstRender) if (firstRender)
{
if (AuthStateTask != null)
{
var authState = await AuthStateTask;
if (authState.User.Identity?.IsAuthenticated == true)
{ {
await LoadData(); await LoadData();
StateHasChanged(); StateHasChanged();
} }
} }
}
}
private async Task LoadData() private async Task LoadData()
{ {
@@ -107,6 +107,9 @@ else
</MudDialog> </MudDialog>
@code { @code {
[CascadingParameter]
private Task<AuthenticationState>? AuthStateTask { get; set; }
private List<TaxProfile>? profiles; private List<TaxProfile>? profiles;
private List<Client> clients = []; private List<Client> clients = [];
private Dictionary<int, string> clientMap = new(); private Dictionary<int, string> clientMap = new();
@@ -119,11 +122,18 @@ else
protected override async Task OnAfterRenderAsync(bool firstRender) protected override async Task OnAfterRenderAsync(bool firstRender)
{ {
if (firstRender) if (firstRender)
{
if (AuthStateTask != null)
{
var authState = await AuthStateTask;
if (authState.User.Identity?.IsAuthenticated == true)
{ {
await LoadData(); await LoadData();
StateHasChanged(); StateHasChanged();
} }
} }
}
}
private async Task LoadData() private async Task LoadData()
{ {