From 0d3615b44d871311c91982261f7b693a760aedad Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Mon, 29 Jun 2026 15:30:14 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Blazor=20=EC=9D=B8=EC=A6=9D=20=EA=B3=B5?= =?UTF-8?q?=EA=B8=89=EC=9E=90=EC=9D=98=20=EB=B9=84=EB=8F=99=EA=B8=B0=20?= =?UTF-8?q?=EB=A1=9C=EB=94=A9=20=EC=A7=80=EC=97=B0=EC=97=90=20=EC=9D=98?= =?UTF-8?q?=ED=95=9C=20API=20=ED=98=B8=EC=B6=9C=20=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=8A=A4=20=EC=BB=A8=EB=94=94=EC=85=98=20=ED=95=B4=EA=B2=B0=20?= =?UTF-8?q?(CascadingParameter=20Task=20=EB=8C=80?= =?UTF-8?q?=EA=B8=B0=20=EC=B6=94=EA=B0=80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Pages/ConsultingActivities.razor | 14 +++++- .../Components/Admin/Pages/Contracts.razor | 14 +++++- .../Components/Admin/Pages/Dashboard.razor | 44 ++++++++++++------- .../Admin/Pages/RevenueTrackings.razor | 14 +++++- .../Admin/Pages/TaxFilingSchedules.razor | 16 +++++-- .../Components/Admin/Pages/TaxProfiles.razor | 14 +++++- 6 files changed, 88 insertions(+), 28 deletions(-) diff --git a/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor b/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor index 959495d..09be9c4 100644 --- a/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor +++ b/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor @@ -116,6 +116,9 @@ @code { + [CascadingParameter] + private Task? AuthStateTask { get; set; } + private List? activities; private List clients = []; private Dictionary clientMap = new(); @@ -128,8 +131,15 @@ { if (firstRender) { - await LoadData(); - StateHasChanged(); + if (AuthStateTask != null) + { + var authState = await AuthStateTask; + if (authState.User.Identity?.IsAuthenticated == true) + { + await LoadData(); + StateHasChanged(); + } + } } } diff --git a/TaxBaik.Web/Components/Admin/Pages/Contracts.razor b/TaxBaik.Web/Components/Admin/Pages/Contracts.razor index dce7afe..6187d4a 100644 --- a/TaxBaik.Web/Components/Admin/Pages/Contracts.razor +++ b/TaxBaik.Web/Components/Admin/Pages/Contracts.razor @@ -126,6 +126,9 @@ @code { + [CascadingParameter] + private Task? AuthStateTask { get; set; } + private List? contracts; private List clients = []; private Dictionary clientMap = new(); @@ -138,8 +141,15 @@ { if (firstRender) { - await LoadData(); - StateHasChanged(); + if (AuthStateTask != null) + { + var authState = await AuthStateTask; + if (authState.User.Identity?.IsAuthenticated == true) + { + await LoadData(); + StateHasChanged(); + } + } } } diff --git a/TaxBaik.Web/Components/Admin/Pages/Dashboard.razor b/TaxBaik.Web/Components/Admin/Pages/Dashboard.razor index df99146..993a391 100644 --- a/TaxBaik.Web/Components/Admin/Pages/Dashboard.razor +++ b/TaxBaik.Web/Components/Admin/Pages/Dashboard.razor @@ -158,6 +158,9 @@ @code { + [CascadingParameter] + private Task? AuthStateTask { get; set; } + private AdminDashboardSummary summary = new(0, 0, 0, 0, []); private List upcomingFilings = []; private string? errorMessage; @@ -167,25 +170,32 @@ { if (firstRender) { - try + if (AuthStateTask != null) { - // API 클라이언트 사용 (서비스 직접 호출 X) - var summaryTask = DashboardClient.GetSummaryAsync(); - var filingsTask = DashboardClient.GetUpcomingFilingsAsync(30); + var authState = await AuthStateTask; + if (authState.User.Identity?.IsAuthenticated == true) + { + try + { + // API 클라이언트 사용 (서비스 직접 호출 X) + var summaryTask = DashboardClient.GetSummaryAsync(); + var filingsTask = DashboardClient.GetUpcomingFilingsAsync(30); - await Task.WhenAll(summaryTask, filingsTask); - summary = await summaryTask; - upcomingFilings = (await filingsTask).ToList(); - } - catch (Exception ex) - { - errorMessage = "대시보드 데이터를 불러올 수 없습니다."; - Console.Error.WriteLine($"Dashboard error: {ex.Message}"); - } - finally - { - isLoading = false; - StateHasChanged(); + await Task.WhenAll(summaryTask, filingsTask); + summary = await summaryTask; + upcomingFilings = (await filingsTask).ToList(); + } + catch (Exception ex) + { + errorMessage = "대시보드 데이터를 불러올 수 없습니다."; + Console.Error.WriteLine($"Dashboard error: {ex.Message}"); + } + finally + { + isLoading = false; + StateHasChanged(); + } + } } } } diff --git a/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor b/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor index 3929008..abb772a 100644 --- a/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor +++ b/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor @@ -113,6 +113,9 @@ @code { + [CascadingParameter] + private Task? AuthStateTask { get; set; } + private List? revenues; private List clients = []; private Dictionary clientMap = new(); @@ -124,8 +127,15 @@ { if (firstRender) { - await LoadData(); - StateHasChanged(); + if (AuthStateTask != null) + { + var authState = await AuthStateTask; + if (authState.User.Identity?.IsAuthenticated == true) + { + await LoadData(); + StateHasChanged(); + } + } } } diff --git a/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor b/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor index 2e53edd..d1a3d93 100644 --- a/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor +++ b/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor @@ -141,19 +141,29 @@ @code { + [CascadingParameter] + private Task? AuthStateTask { get; set; } + private List? schedules; private List clients = []; private Dictionary clientMap = new(); private MudForm? form; private bool isDialogOpen; private TaxFilingScheduleForm scheduleForm = new(); - + protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { - await LoadData(); - StateHasChanged(); + if (AuthStateTask != null) + { + var authState = await AuthStateTask; + if (authState.User.Identity?.IsAuthenticated == true) + { + await LoadData(); + StateHasChanged(); + } + } } } diff --git a/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor b/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor index ee76076..ee850a9 100644 --- a/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor +++ b/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor @@ -107,6 +107,9 @@ else @code { + [CascadingParameter] + private Task? AuthStateTask { get; set; } + private List? profiles; private List clients = []; private Dictionary clientMap = new(); @@ -120,8 +123,15 @@ else { if (firstRender) { - await LoadData(); - StateHasChanged(); + if (AuthStateTask != null) + { + var authState = await AuthStateTask; + if (authState.User.Identity?.IsAuthenticated == true) + { + await LoadData(); + StateHasChanged(); + } + } } }